Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

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





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
- - Bastion   uzyj Nemsisa - autorstwa FiDO wlasnie   5.03.2006, 21:49:21
- - NetJaro   Dzięki za podpowiedź, na pewno zobaczę Tylko jaki...   5.03.2006, 21:51:02
- - Bastion   jest w tej wielkiej paczce ktora wystawil FiDO wyz...   5.03.2006, 21:53:24
- - FiDO   Cytat(NetJaro @ 2006-03-05 21:51:02) Dzięki z...   5.03.2006, 22:20:02
- - NetJaro   FiDo, ja właśnie szukam czegoś prostego, co nie je...   5.03.2006, 22:25:16
- - Bastion   moze kogos zainteresuje KodCache = 0 Template = t...   15.04.2006, 11:21:14
- - Slump   Proponuje testowac opt rc3 Z tego co wiem po zmia...   15.04.2006, 14:05:00
- - Bastion   A jak hurtowo pobrac caly katalog ?   15.04.2006, 14:09:00
- - NuLL   To chyba juz pytanie poza tematem - prosze bez OT   15.04.2006, 14:15:06
- - Bastion   ok, opt-rc3 dodany do testow, dodalem takze nanjow...   15.04.2006, 14:39:06
- - FiDO   Cytat(Bastion @ 2006-04-15 15:39:06)FiDO : Wi...   15.04.2006, 20:05:24
- - Bastion   Obiektówkę zostawiam sobie na linię 1.6.x - chyba ...   15.04.2006, 20:16:20
- - jaco   @Bastion: a pcte nie ma na liscie a chyba jest w b...   8.06.2006, 03:59:35
- - Bastion   Jak bedzie publiczny i bedzie go mozna sciagnac to...   13.06.2006, 10:12:17
- - Turgon   Co to Chameleon stał się płatny?   18.06.2006, 19:51:50
- - Fipaj   CytatKlasę Class5.Chameleon 1.9.0 można pobrać z r...   18.06.2006, 21:11:24
- - ActivePlayer   nawiasem mowiac spedzilem ze 180 sekund w poszukiw...   18.06.2006, 21:59:32
- - Turgon   Super Po za tym polecam wszystkie klasy bastiana....   19.06.2006, 14:59:40
- - Kinool   witam czy ten projekt jeszcze istnieje?? bo coś ...   24.01.2007, 19:46:03
- - Bastion   Istnieje, ale jako projekt zamknięty.   24.01.2007, 20:01:37
- - Kinool   a licencje mozna kupic?   24.01.2007, 20:19:08
- - Turgon   @Bastion: Wiem, że idiotyczne pytanie, ale masz na...   24.01.2007, 20:29:01
- - NetJaro   Tutaj się szczerze mówiąc.. zawiodłem.. Czemu zam...   24.01.2007, 21:28:34
- - Bastion   @kinol : info poszlo na PM @Turgon : mam na mysli...   24.01.2007, 21:31:42
- - SHiP   Rzeczywiście szkoda ze zamknity, dobrze się zapowi...   24.01.2007, 21:34:12
- - Bastion   Zamkniety, nie znaczy tyle co nierozwijany. Rozwij...   24.01.2007, 21:37:32
- - bim2   Rozumiem tlyko ze stara wersje mozna wykorzystywać...   27.01.2007, 13:17:47
|- - r4zick   Cytat(bim2 @ 27.01.2007, 14:17:47 ) R...   8.05.2008, 18:13:16
- - Cysiaczek   Starszego kotleta nie znalazłeś? Zamykam   8.05.2008, 18:16:09
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: 4.10.2025 - 02:39