![]() |
![]() |
![]() ![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 144 Pomógł: 12 Dołączył: 16.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam, chciałbym wszystkich zainteresowanych koderów zaprosić do dyskusji oraz uchylenia rąbka swojego fachu. Otóż odkąd zacząłem programować według wzorca MVC zacząłem myśleć o systemie szablonów. Na początku stworzyłem własną klasę, bazująca na wyrażeniach regularnych pcre, która parsowała dokument html w poszukiwaniu zmiennych,bloków itp i je podmieniała. Później wpadłem na odkrywczy fakt że po co odkrywać koło na nowo i zacząłem stosować smarty, w między czasie liznąłem trochę OPT. Jednak pewnego pięknego dnia natrafiłem na artykuł Pana W.Gajdy:
http://www.internetmaker.pl/artykul/2920,1...rezentacji.html , otworzyłem swoje szablony i rzeczywiście okazało się, że powrót do "czystego PHP" to jest to ! Tylko według tej koncepcji znacznie uprościłem swój kod:
i właśnie tutaj stanąłem, bo nie wiem jak i czy wogle dalej dobrze myślę...otóż: 1.) jak tutaj zrobić dynamicznie ładowaną treść ? dać w sekcji <?php include($x); ?> i w zależności od danego żądania odpowiednio nadawać wartość $x ? 2.) Czy obsługę tak prostego systemu szablonów pisać w osobnej klasie i przesyłać dane metodą assign jak w smartym ? czy lepiej od razu zrobić to w kontrolerze 1-2 metody które ładują szablon cachują i tyle,a sam system szablonów to po prostu zapisane pliki .php z kodem HTML i wstawkami jak w tym artykule ? Prosiłbym o jakiś przykładowy kod jeśli ktoś zechce się z nim podzielić Ten post edytował R4D3K 13.07.2009, 21:37:58 |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%) ![]() ![]() |
Logika systemu szablonów osobno, szablony osobno. Popatrz sobie na Zend_View w ZF-ie, jak jest to rozwiązane.
A przy okazji polecam jeszcze taki tekst: http://www.zyxist.com/pokaz.php/uzyteczne_systemy_szablonow . Jakiś czas temu musiałem wrócić do szablonów PHP w jednym projekcie i to była masakra, szczególnie gdy przyszło budować formularze. Prawda jest taka, że 90% systemów szablonów po prostu reimplementuje PHP i powiela jak kalkę wszystkie jego wady i zalety, jednak nie znaczy to, że tak musi być zawsze, bo PHP nie ma monopolu na "jedyność słuszność". -------------------- Specjalista ds. głupich i beznadziejnych, Zyx
Nowości wydawnicze: Open Power Collector 3.0.1.0 | Open Power Autoloader 3.0.3.0 |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 72 Pomógł: 10 Dołączył: 2.02.2008 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
To ja tylko opowiem jak to jest w ZF.
Kontroler posiada takie pole co się zowie "view" Wszystkie dane do view przekazuje się bezpośrednio jako pola tego wg schematu $this->view->jakiesdane = "dane"; Potem dopiero Zend_View wg. określonego adaptera wywołuje skrypty phtml, które są właśnie esencją "powrotu do czystego php". Takie podejście jest w miarę OK, tylko wkurza nadmiarowość literek, ale można sobie przecież napisać funkcję ułatwiającą życie we własnym rozszerzeniu kontrolera ![]() |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 144 Pomógł: 12 Dołączył: 16.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
Za Twoja namową Zyx poczytałem na temat Zend_View, i mniej więcej wiem jak to tam wygląda, jednak mam pytanie dotyczące Zend_Layout, otóż jak udało mi się dowiedzieć klasa ta służy do stworzenia kontenera strony www, czyli nagłówek+stopka:
dzięki takiemu rozwiązaniu do każdego naszego szablonu nie musimy już includować nagłówka i stopki itp. I moje pytanie jak to jest zaimplementowane (podejrzewam że zapewni dzięki metodom magicznym typu __call, ale mogę się mylić) , czy ktoś mogłbym mi słownie najlepiej kodem) pokazać jak ta metoda działa ? Skoro szablon poprostu jest includowany (wtedy działa konstrukacja typu echo $view->zmienna), to czy tutaj jest to też zastępowane przez proste include ? czy wczytuje ten content i jakoś sprytnie podczas renderu jest to wklejane ? Ten post edytował R4D3K 14.07.2009, 15:49:20 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 09:05 |