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
 
Start new topic
Odpowiedzi
FiDO
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

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


Dokladnie tak.
Skipped to jest, gdy dla danego testu brakuje w ogole szablonu albo z powodu braku potrzebnej funkcjonalnosci, albo z powodu braku wiedzy u mnie na temat obslugi tej funkcjonalnosci (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
OPT bedzie uzupelniony o brakujace testy jak tylko wyjdziep poprawiona wersja. Podobno ma tez dostac malego kopa wydajnosciowego.. zobaczymy. Co do reszty brakujacych testow to albo nie moglem znalezc dokumentacji do danego systemu albo znalazlem i nie bylo w nim nic o potrzebnej funkcjonalnosci.
Nadal apeluje o sprawdzenie tego testu u kogos na linuxie/unixie, jestem ciekaw czy proporcje wynikow sie zachowaja...
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: 6.10.2025 - 22:10