Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [klasa] Chameleon 1.9.1, Prosta ale szybka obsługa szablonów
Bastion
post
Post #1





Grupa: Zarejestrowani
Postów: 505
Pomógł: 0
Dołączył: 8.01.2005

Ostrzeżenie: (0%)
-----


Witam ponownie,

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
----------------------------------------------------------

  1. <?php
  2.  
  3. require_once('../libs/class.chameleon.php');
  4.  
  5. $tpl = new Chameleon;
  6.  
  7. // Ustawienie sciezek dostepu do szablonow i cache mapy tagow
  8. $tpl->template_dir = './templates'; // default
  9. $tpl->tags_dir = './templates_tags'; // default
  10.  
  11. // Ustawienie czy przechowywac tagi
  12. $tpl->store_tags = true; // default
  13.  
  14. // Wczytsanie szablonu
  15. $tpl->load('example1.tpl');
  16.  
  17. // Dodanie zmiennej
  18. $tpl->setVar('title', 'Witaj przyjacielu');
  19.  
  20. // Wyswietlenie szablonu
  21. $tpl->display();
  22.  
  23. ?>

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

--

  1. <?php
  2.  
  3. require_once('../libs/class.chameleon.php');
  4.  
  5. $tpl = new Chameleon;
  6.  
  7. // Ustawienie sciezek dostepu do szablonow i cache mapy tagow
  8. $tpl->template_dir = './templates'; // default
  9. $tpl->tags_dir = './templates_tags'; // default
  10.  
  11. // Ustawienie czy przechowywac tagi
  12. $tpl->store_tags = true; // default
  13.  
  14. // Wczytsanie szablonu
  15. $tpl->load('example3.tpl');
  16.  
  17. // Dodanie zmiennej
  18. $tpl->setVar('title', 'Witaj przyjacielu');
  19.  
  20. // Zmienna tablicowa
  21. $tablica = array('0' => 'mama', '1' => 'tata');
  22. $tpl->setVar('rodzice', $tablica);
  23.  
  24. // Wyswietlenie szablonu
  25. $tpl->display();
  26.  
  27. ?>

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

--

  1. <?php
  2.  
  3. require_once('../libs/class.chameleon.php');
  4.  
  5. $tpl = new Chameleon;
  6.  
  7. // Ustawienie sciezek dostepu do szablonow i cache mapy tagow
  8. $tpl->template_dir = './templates'; // default
  9. $tpl->tags_dir = './templates_tags'; // default
  10.  
  11. // Ustawienie czy przechowywac tagi
  12. $tpl->store_tags = true; // default
  13.  
  14. // Wczytsanie szablonu
  15. $tpl->load('example6.tpl');
  16.  
  17. // Dodanie zmiennej
  18. $tpl->setVar('title', 'Witaj przyjacielu');
  19. $tpl->setVar('zmiennaA', 10);
  20. $tpl->setVar('zmiennaC', true);
  21.  
  22. // Wyswietlenie szablonu
  23. $tpl->display();
  24.  
  25. ?>

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

--

  1. <?php
  2.  
  3. require_once('../libs/class.chameleon.php');
  4.  
  5. $tpl = new Chameleon;
  6.  
  7. // Ustawienie sciezek dostepu do szablonow i cache mapy tagow
  8. $tpl->template_dir = './templates'; // default
  9. $tpl->tags_dir = './templates_tags'; // default
  10.  
  11. // Ustawienie czy przechowywac tagi
  12. $tpl->store_tags = true; // default
  13.  
  14. $newsy[0] = array ('topic' => 'Temat Pierwszy', 'content' => 'Tresc 1');
  15. $newsy[1] = array ('topic' => 'Temat Drugi', 'content' => 'Tresc 2');
  16. $newsy[2] = array ('topic' => 'Temat Trzeci', 'content' => 'Tresc 3');
  17. $newsy[3] = array ('topic' => 'Temat Czwarty', 'content' => 'Tresc 4');
  18.  
  19. // Wczytsanie szablonu
  20. $tpl->load('example7.tpl');
  21.  
  22. // Dodanie zmiennej
  23. $tpl->setVar('title', 'Witaj przyjacielu');
  24. $tpl->setVar('newsy', $newsy);
  25.  
  26. // Wyswietlenie szablonu
  27. $tpl->display();
  28.  
  29. ?>

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/

Ten post edytował Bastion 18.06.2006, 22:58:47
Go to the top of the page
+Quote Post

Posty w temacie
- Bastion   [klasa] Chameleon 1.9.1   10.02.2006, 00:42:38
- - hwao   chciałbym jeszcze zobaczyc "skompilowany plik...   10.02.2006, 08:30:40
- - Chewolf   Cytat(hwao @ 2006-02-10 08:30:40)ify? ekhm i...   10.02.2006, 09:45:37
- - Bastion   hwao : tu sa przechowane tagi (cache) : ags/' targ...   10.02.2006, 10:20:02
- - nospor   hmmm, fajne Rzecz, która od razu rzuca mi się w ...   10.02.2006, 10:26:45
- - Bastion   nospor : Brdzo dobry pomysl. Znalazl sie juz u mni...   10.02.2006, 10:28:36
- - nospor   hehe, żeby nie bylo, że to ja taki genialny. Tak j...   10.02.2006, 10:32:40
- - Bastion   idac za ciosem moze dodac tez tryb SILENT, np gdy ...   10.02.2006, 10:36:18
- - nospor   Cytatda to fajna mozliwosc gdy ktos np nie bedzie ...   10.02.2006, 10:46:00
- - Bastion   moze i racja musze sie z tym przespac   10.02.2006, 10:49:32
- - Diablos   Bastion: zainteresuj sie jeszcze OPT i jego mozliw...   10.02.2006, 12:21:56
- - Bastion   tzn. czym dokladnie?   10.02.2006, 14:34:31
- - bigZbig   Open Power Template   10.02.2006, 15:08:19
- - Bastion   BigZbig : znam juz ten adres - a pytalem na co kon...   10.02.2006, 15:32:59
- - ActivePlayer   co do trybu silent.. w smartym jest cos takiego ja...   10.02.2006, 15:46:52
- - Bastion   poszlo na tapete   10.02.2006, 15:52:24
- - bigZbig   Cytat(Bastion @ 2006-02-10 16:32:59)BigZbig :...   10.02.2006, 16:34:38
- - Bastion   @bigZbig moze powiesz mi jak zmusic by OPT tylko ...   10.02.2006, 16:58:15
- - bigZbig   Nie znam mozliwosci OPT wiec Ci nie powiem, ale je...   10.02.2006, 17:17:51
- - ActivePlayer   [PHP] pobierz, plaintext <?phpecho $tpl->fet...   10.02.2006, 17:17:59
- - Bastion   bigZbig : Smarty : 500 iteracji (20 zmiennych) = ...   10.02.2006, 18:27:49
- - FiDO   Jak mozesz to udostepnij caly kod testujacy, tak z...   10.02.2006, 19:27:49
- - Bastion   [PHP] pobierz, plaintext <?php  include_on...   10.02.2006, 19:39:59
- - NetJaro   Bardzo ciekawy projekt.. ahh, trzeba spróbować. G...   10.02.2006, 20:07:09
- - Bastion   NetJaro: Wszystkie uwagi , przedewszystkim krytycz...   10.02.2006, 21:15:04
- - ActivePlayer   dla mnie najwiekszy minus, to ciezka przesiadka ze...   10.02.2006, 23:10:28
- - NetJaro   Bastion, prosze, nie zrób z tego projektu jakiegoś...   11.02.2006, 00:08:22
- - Bastion   @ActivePlayer : dla mnie wielkim minusem jest ogro...   11.02.2006, 00:24:30
- - SHiP   No cóż klasa jak widze chodzi tylko pod php5 ;] pr...   11.02.2006, 01:20:16
- - Bastion   - dales prawa zapisu na katalog templates_tags ? ...   11.02.2006, 09:59:01
- - ActivePlayer   @bastion: piszesz na temat pluginów... powiem Ci t...   11.02.2006, 10:29:27
- - Bastion   @ActivePlayer: moze nie, jesli dobrze sie to rozeg...   11.02.2006, 10:40:51
- - splatch   Cytatprzyznaj ze tworzenie tpl pod smarty jest z l...   11.02.2006, 11:35:23
- - ActivePlayer   ok, w takim razie jak zrobisz u Ciebie cos takiego...   11.02.2006, 11:41:24
- - Bastion   @splatch : na moim pierwszym razie sie skonczylo ...   11.02.2006, 13:42:45
- - ActivePlayer   1. naprzemiennie kolorowane wiersze w smartym Kod{...   11.02.2006, 14:51:29
- - Bastion   {cycle} i formatowanie daty dopisane do tapety pw...   11.02.2006, 14:58:44
- - ActivePlayer   CytatSmarty 2.6.12 : 5000 iteracji (20 zmiennych) ...   11.02.2006, 15:04:59
- - Bastion   Jakie szybciej ? Chameleon tutaj jest szybszy o 6...   13.02.2006, 09:33:03
- - Kinool   hmm twoje testy sa troche syntetyczne i nie oddaja...   13.02.2006, 10:30:29
- - Bastion   hum, dobry pomysl, dzis ukoncze wersje 1.1.0 posia...   13.02.2006, 10:37:05
- - splatch   ... najlepiej używając Apache Benchmark   13.02.2006, 11:03:13
- - SHiP   Cytat(Bastion @ 2006-02-11 10:59:01)- dales p...   13.02.2006, 16:15:26
- - ActivePlayer   CytatJakie szybciej ? smile.gif Chameleon tutaj je...   13.02.2006, 16:45:53
- - Bastion   Trach trach - Chameleon 1.1.0 - wydany. Changelog...   13.02.2006, 19:43:05
- - Bastion   free dla niekomercyjnych chociaz w innych przypad...   13.02.2006, 20:14:32
- - SHiP   kurde wywlilem post o licencji bo juz znalazłem =)...   13.02.2006, 20:18:38
- - Bastion   pelny tekst licencji tu : http://www.vertis.com.pl...   13.02.2006, 20:21:04
- - FiDO   Hmm.. mialem chwile wolnego od sesji to sobie poro...   18.02.2006, 00:37:42
- - Slump   Bardzo ciekawy temat Zalezy pod jakim katem testo...   18.02.2006, 00:52:48
- - FiDO   CytatZależy pod jakim katem testowac, wyniki beda ...   18.02.2006, 01:24:19
- - Bastion   Fiu fiu Dziekuje za ciekawa opinie , chcialem zau...   18.02.2006, 05:56:01
- - splatch   Do takich testów najbardziej nadaje się apache ben...   18.02.2006, 11:36:00
- - Bastion   ab mam, jest standardowo w mojej dystrybucji. umow...   18.02.2006, 14:06:20
- - Denver   No cóż, muszę przyznać, że jestem pod wrażeniem Tw...   18.02.2006, 14:34:54
- - Bastion   Denver, o to chodzi ze FiDo tez przestawil szablon...   18.02.2006, 14:41:02
- - FiDO   No to jestem juz u siebie... testy prawie pokrywaj...   18.02.2006, 23:00:40
- - Bastion   Fido : hum faktycznie roznica wychodzi tylko w sys...   18.02.2006, 23:05:52
- - FiDO   No przydalby sie... wg mnie powinno to byc ok 10KB...   18.02.2006, 23:29:39
- - Bastion   ok, to ja jutro zapodam dwie propozycje takich TP...   18.02.2006, 23:34:01
- - hwao   Proponuje cos takiego: 5 - zwyklych zmiennych (np ...   19.02.2006, 11:11:03
- - Bastion   @hwao: wlasnie robie szablony testowe kazdy ma ro...   19.02.2006, 11:16:17
- - FiDO   @hwao: wlasnie o czyms takim myslalem :] Problem ...   19.02.2006, 11:33:22
- - Bastion   wlasnie hwao dodal pare pozycji do tapety , a ja w...   19.02.2006, 11:35:54
- - FiDO   No i wlasnie to jest to o czym pisalem... petelki ...   19.02.2006, 11:55:11
- - Bastion   FiDO - chameleon jeszcze ma jedna wade, w przypadk...   19.02.2006, 11:59:06
- - Turgon   Wszystko pięknie ładnie, ale tylko php 5, czyli źl...   19.02.2006, 13:13:03
- - Bastion   Fido: jaki jest odpowiednik w smarty do mojego (@l...   19.02.2006, 13:24:15
- - FiDO   Taki: http://smarty.php.net/manual/en/language.f.....   19.02.2006, 13:25:30
- - Bastion   no to jeszcze musze rozgrysc jak tego uzyc w odpow...   19.02.2006, 13:27:19
- - FiDO   Zeby bylo bardziej podobne do zwyklej petli for to...   19.02.2006, 13:39:39
- - Bastion   Ok, do rzeczy Wydałem przejściową wersje Chameleo...   19.02.2006, 18:20:09
- - FiDO   KodTesting Chameleon 1.1.0 CVS => 73.38 re...   19.02.2006, 18:36:23
- - Bastion   170requestow/s - magia to wymaga specjalnego pode...   19.02.2006, 18:40:49
- - Diablos   W jaki sposob testujecie ta klase za pomoca Apache...   19.02.2006, 22:53:37
- - FiDO   W takiej najprostszej wersji to: ab.exe -c 50 -n 3...   20.02.2006, 01:23:31
- - Slump   Zawsze ad opt mozesz pogadac z zyx. Na www.zyxist...   20.02.2006, 01:42:20
- - Bastion   hum, minie troche czasu zanim Chameleon stanie do ...   20.02.2006, 06:37:07
- - bigZbig   Robi sie z tego tematu bardzo ciekawy watek. Jak b...   20.02.2006, 08:56:28
- - Bastion   @FiDO: Chameleon 1.2.0 relased (changelog) - UWA...   20.02.2006, 13:38:04
- - FiDO   No to update wynikow (pelen komplet szablonow http...   20.02.2006, 19:26:23
- - Bastion   szkoda ze system tagow a chameleonie nie sprawdzil...   21.02.2006, 06:37:14
- - hwao   Swoja droga, tez napisalem system szablonów na wła...   21.02.2006, 11:53:15
- - Bastion   hum, chyba inne mozliwosci jak w php to nie ma, mo...   21.02.2006, 20:36:39
- - FiDO   A XDebug czy profiler, ktory jest w Zendzie ?   21.02.2006, 20:47:36
- - hwao   Cytat(FiDO @ 2006-02-21 20:47:36)A XDebug czy...   21.02.2006, 21:20:06
- - aleksander   profilera xdebug pod php5 nie ma. hwao apd uzywam ...   21.02.2006, 22:02:53
- - FiDO   To znowu ja Chcialem poczekac na RC3 OPT, bo w o...   3.03.2006, 19:05:49
- - sopel   Cytat(aleksander @ 2006-02-21 22:02:53)profil...   3.03.2006, 20:54:16
- - NetJaro   Mogę wiedzieć, jak czytać te wyniki? Co to znaczy ...   5.03.2006, 20:21:22
- - Bastion   114 zapytan na sekunde , czyli 114 wykonanych odpo...   5.03.2006, 20:22:33
- - NetJaro   Tzn. czym więcej tym gorzej ?   5.03.2006, 20:27:02
- - Bastion   im wiecej tym lepiej   5.03.2006, 20:28:22
- - NetJaro   :| Dziwne.. a gdy skipped, to za dużo ?   5.03.2006, 20:30:09
- - Bastion   a gdy skipped tzn ze klasa nie potrafila dokonczyc...   5.03.2006, 20:31:28
- - FiDO   Dokladnie tak. Skipped to jest, gdy dla danego tes...   5.03.2006, 20:50:38
- - Bastion   KodSlackware Linux / P4 HT 2800MHz / 512MB / Apach...   5.03.2006, 21:35:31
- - NetJaro   Skoro.. "czym więcej tym lepiej" to Twoj...   5.03.2006, 21:40:12
- - Bastion   W porownaniu z moja to zwykle smarty slabo wyszlo,...   5.03.2006, 21:43:34
- - NetJaro   A ja szukam wlasnie jakiegos systemu dobrego, bo p...   5.03.2006, 21:46:01
2 Stron V   1 2 >


Closed TopicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 17:15