Biorąc pod uwagę opinie i zalecenia forumowiczów , powstała pierwsza stabilna i oficjalna wersja klasy Chameleon do obsługi szablonów. Na wstęp drobne porównanie z klasą Smarty.
Test symulujący całkowite przeładowanie strony z wykorzystanie cache dyskowego.
Smarty korzysta ze skompilowanych szablonów , Chameleon z mapy tagów :
Smarty : 500 iteracji (20 zmiennych) = 0.3475s
Smarty : 500 iteracji (10 zmiennych) = 0.3067s
Smarty : 500 iteracji (5 zmiennych) = 0.2965s
Chameleon : 500 iteracji (20 zmiennych) = 0.2336s
Chameleon : 500 iteracji (10 zmiennych) = 0.2095s
Chameleon : 500 iteracji (5 zmiennych) = 0.2105s
Kolejny test symulujacy kilkakrotne parsowanie szablonu podczas jednego wywolania strony, sytuacja ma miejsce gdy parsujemy kilkakrotnie ten sam szablon (np. formatka newsa) z zaladowana mapa tagow w pamieci. Oto wyniki :
Smarty : 500 powtórzeń (20 zmiennych) = 0.2462s
Chameleon : 500 powtórzeń (20 zmiennych) = 0.0981s
---------------- Co potrafi Chameleon :
# Cache tagow na dysku twardym
# Zmienne typu : {zmienna} {test}
# Zmienne tablicowe jednowymiarowe : {tablica[0]} {tablica[1]}
# Zagniezdzone IFy dowolnej glebokosci z obsluga negacji oraz ELSE (Narazie warunek sprawdzany jest logicznie tylko czy zmienna jest ustawiona)
# Petle szablonowe
# Podswietlanie blednych tagow
# Proste operacje matematyczne
----------------------------------------------------------
<?php require_once('../libs/class.chameleon.php'); $tpl = new Chameleon; // Ustawienie sciezek dostepu do szablonow i cache mapy tagow $tpl->template_dir = './templates'; // default $tpl->tags_dir = './templates_tags'; // default // Ustawienie czy przechowywac tagi $tpl->store_tags = true; // default // Wczytsanie szablonu $tpl->load('example1.tpl'); // Dodanie zmiennej $tpl->setVar('title', 'Witaj przyjacielu'); // Wyswietlenie szablonu $tpl->display(); ?>
Przyklad 1 : Zmienne zwykle
Szablon : http://www.vertis.com.pl/chameleon/example...es/example1.tpl
Demo : http://www.vertis.com.pl/chameleon/example...es/example2.php
--
<?php require_once('../libs/class.chameleon.php'); $tpl = new Chameleon; // Ustawienie sciezek dostepu do szablonow i cache mapy tagow $tpl->template_dir = './templates'; // default $tpl->tags_dir = './templates_tags'; // default // Ustawienie czy przechowywac tagi $tpl->store_tags = true; // default // Wczytsanie szablonu $tpl->load('example3.tpl'); // Dodanie zmiennej $tpl->setVar('title', 'Witaj przyjacielu'); // Zmienna tablicowa $tpl->setVar('rodzice', $tablica); // Wyswietlenie szablonu $tpl->display(); ?>
Przyklad 3 : Zmienne tablicowe
Szablon : http://www.vertis.com.pl/chameleon/example...es/example3.tpl
Demo : http://www.vertis.com.pl/chameleon/example...es/example3.php
--
<?php require_once('../libs/class.chameleon.php'); $tpl = new Chameleon; // Ustawienie sciezek dostepu do szablonow i cache mapy tagow $tpl->template_dir = './templates'; // default $tpl->tags_dir = './templates_tags'; // default // Ustawienie czy przechowywac tagi $tpl->store_tags = true; // default // Wczytsanie szablonu $tpl->load('example6.tpl'); // Dodanie zmiennej $tpl->setVar('title', 'Witaj przyjacielu'); $tpl->setVar('zmiennaA', 10); $tpl->setVar('zmiennaC', true); // Wyswietlenie szablonu $tpl->display(); ?>
Przyklad 6 : Warunki
Szablon : http://www.vertis.com.pl/chameleon/example...es/example6.tpl
Demo : http://www.vertis.com.pl/chameleon/example...es/example6.php
--
<?php require_once('../libs/class.chameleon.php'); $tpl = new Chameleon; // Ustawienie sciezek dostepu do szablonow i cache mapy tagow $tpl->template_dir = './templates'; // default $tpl->tags_dir = './templates_tags'; // default // Ustawienie czy przechowywac tagi $tpl->store_tags = true; // default // Wczytsanie szablonu $tpl->load('example7.tpl'); // Dodanie zmiennej $tpl->setVar('title', 'Witaj przyjacielu'); $tpl->setVar('newsy', $newsy); // Wyswietlenie szablonu $tpl->display(); ?>
Przyklad 7 : Petle w szablonie
Szablon : http://www.vertis.com.pl/chameleon/example...es/example7.tpl
Demo : http://www.vertis.com.pl/chameleon/example...es/example7.php
--
Klasę w wersji 1.0.0 można pobrać z http://www.vertis.com.pl/