Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP/OOP] Prosta klasa szablonów - co do poprawy?
l0ud
post
Post #1





Grupa: Zarejestrowani
Postów: 1 387
Pomógł: 273
Dołączył: 18.02.2008

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


Witam (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Od jakiegoś czasu opracowuję sobie prostą klasę templatów, która wykorzystuję na swoich stronach. Na smarty jest dla mnie jeszcze za wcześnie, zresztą nie lubię takich wielkich 'krów' w małych projektach (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) . Niestety w programowaniu obiektowym nie mam jeszcze żadnego doświadczenia, więc zapewne ta klasa wiele wspólngo z OOP nie ma... Tak więc proszę o ogólną koncepcję - jak to powinno być zbudowane właściwie, oraz ewentualne uwagi co poprawić/dorobić w klasie, bo aktualnie nie ma ona prawie żadnych możliwości... (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Kod nie mieścił się w poście:
http://77.88.178.156/priv/

Jakby ktoś chciał wypróbować, przykład zastosowania:
  1. <?php
  2. include('templates_class.php');
  3. $tpl = new templates('templates/','.tpl',1,2,0);
  4.  
  5. $data = array(array('Pierwszy element', 'drugie pole', 'cos innego'), array('Drugi element', 'cos innego', 'cos innego'));
  6.  
  7. $tpl->setvar('title','Spis elementów z tablicy');
  8.  
  9. for ($i=0; $i<count($data); $i++) {
  10. $tpl->setvar('data',$data[$i]);
  11. $tpl->to_buffer('rows','test','row');
  12. }
  13.  
  14. $tpl->display('test','index');
  15.  
  16. ?>


templates/test.tpl
  1. <!-- BEGIN index -->
  2. {#INC:#this/header}
  3. {#BUF:rows}
  4. <!-- END index -->
  5.  
  6. <!-- BEGIN header -->
  7. <h1>{#VAR:title}</h1>
  8. <!-- END header -->
  9.  
  10. <!-- BEGIN row -->
  11. <tr>
  12. <td>{#ARR:data.0}</td>
  13. <td>{#ARR:data.1}</td>
  14. <td>{#ARR:data.2}</td>
  15. </tr>
  16. <!-- END row -->


...wbrew pozorom tutaj nie ma żadnego cache, ta tablica tak nazwana jest tylko po to, żeby nie wczytywać jednego pliku 10 razy do takiego samego bloku (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Brak instrukcji warunkowych i pętli bo... nie wiem jak to ma wyglądać? Przecież w końcu po to są szablony, żeby nie umieszczać logiki pomiędzy styl?

Tak więc proszę o uwagi i pozdrawiam

Dodałem link do kodu ze swojego serwera, bo ten wyżej jak widzę padł albo usunął kod...
http://77.88.178.156/priv/

btw, nie oczekuję nie wiem jakiej odpowiedzi, chociaż wskazówkę jak to zrobić poprawnie w OOP (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował l0ud 10.03.2008, 15:56:57
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
l0ud
post
Post #2





Grupa: Zarejestrowani
Postów: 1 387
Pomógł: 273
Dołączył: 18.02.2008

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


Dzięki za odpowiedź (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Cytat
Co do ładowania templatki, to lepiej by to było zrobić w odddzielnej metodzie niż w konstruktorze.


Hm... Zauważ że sam plik tpl jest ładowany przy metodzie display i gencode. W konstruktorze przekazuję tylko nazwę folderu i rozszerzenie dla wszystkich templatów, co raczej nie powinno się zmienić podczas działania skryptu. Jeżeli jednak jest to zrobić oddzielną metodą to napisz (bo teraz nie wiem czy nie doczytałeś, czy masz inne zdanie).

Co do komentarzy masz zupełną rację, wystawiam kod do oceny a nawet nie przygotowałem go, by inni zrozumieli. Ok, w najbliższym czasie to poprawię.

Pozdrawiam

Komentarze dodane (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Mam nadzieję, że to bardziej skłoni co niektórych do odpowiedzi (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Pozdrawiam
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 2.10.2025 - 19:12