Nadchodzi Smarty 3

19 listopada 2008

Smarty to mój ulubiony system szablonów w PHP :) Zawsze wtedy gdy jest potrzeba oddzielenia logiki od prezentacji korzystam właśnie ze Smarty. Już myślałem, że developerzy ograniczają się tylko do poprawek znalezionych błędów i nie rozwijają kolejnych wersji. Dlatego byłem wczoraj bardzo miło zaskoczony gdy przypadkiem trafiłem na stronę smarty.net i mym oczom ukazał się nagłówek „Smarty 3 Alpha has begun!”.

Jeszcze za wcześnie aby mówić o konkretach, testach wydajności, nowych funkcjonalnościach itd. Informacji na temat Smarty 3 na razie jest jak na lekarstwo.

Przeglądając kod nie da się nie zauważyć, że wszystko zostało napisane od nowa. Zdecydowano się przejść na PHP 5. I dobrze :) Ponadto zaskakuje mała objętość pliku Smarty.class.php i zupełny brak pliku Smarty_Compiler.class. Teraz, jeżeli dobrze wyczytałem, cała siła Smarty jest przeniesiona do wtyczek, które będą uruchamiać się wyłącznie wtedy gdy będą potrzebne. To na pewno znacznie zwiększy wydajność.

Kolejna nowość to większa swoboda w używaniu kodu PHP w szablonach. Oczywiście główne założenie Smarty pozostaje bez zmian – oddzielić logikę od prezentacji, ale teraz więcej zależy od decyzji i upodobań programisty. Jeżeli chcesz użyć zwykłego kodu PHP zamiast składni Smarty domyślnie opartej o zmienne zawarte między { i } to proszę bardzo, nic nie stoi na przeszkodzie. Przykład takiego szablonu tutaj.

Więcej (ale niewiele więcej :P ) można przeczytać w tym dokumencie. Jeszcze pewnie duuużo czasu upłynie nim ukaże się stabilna wersja Smarty 3 ale cieszy mnie niezmiernie fakt, że mój ulubiony system szablonów nadal się rozwija ;)

Dodaj komentarz

8 odpowiedzi dla tego wpisu

  1. Zyx napisał:

    Owszem, fajnie że się rozwija, ale po przejrzeniu kodu nie widzę jakiejś wielkiej rewolucji. API podobne do tego, co już było, a muszę powiedzieć, że średnio ono robi użytek z obiektowości, w szablonach dalej królują klamerki, brak jakiegokolwiek zrozumienia przetwarzanego HTML-a i zasada, że większość rzeczy i tak trzeba sobie ręcznie w szablonach zaprogramować. Nie wspomnę już o tym, że system jest spóźniony o jakieś 4 lata… naprawdę, nietrudno znaleźć systemy szablonów, które są „smarter” niż Smarty.

  2. Arabella napisał:

    1. Zawsze jest potrzeba oddzielenia logiki od prezentacji. Jeżeli tego nie robisz zawsze, to zjedzą cie bugi.
    2. Zawsze dziwiłem się dlaczego nie używać samego PHP do tego celu? Po kiego jeszcze jakieś nakładki typu Smarty które dodatkowo dodają jakieś swoje komendy etc. Wystarczy logikę mieć w jednym pliku, szablon w drugim (wyświetlanie danych przy pomocy echo i foreach) + do tego jeden plik który nimi zarządza: ładuje plik generujący logikę, ładuje plik z szablonem i voila.

    Smarty? Raczej Dumby…

  3. gryzipiorek napisał:

    oj Arabella :) po to wlaśnie powstały szablony żebyś się w te echa nie bawil ;)
    nic nie stoi na przeszkodzie napisać swoje własne szablony …
    jezeli chodzi ci o wydajnosc, szybkosc dzialania serwisu… poportu sprawdz jak ze smarty i jak bez smarty i czy trzymanie sie ECH, PRINTOW jest warte zachodu :)

    brak jakiegokolwiek zrozumienia przetwarzanego HTML-a? — hmm interesuje mnie to zdanie, co w tym htmlu jest takiego niezrozumialego jak pomiedzy klamerkami znajduje sie czysty html tudziez jakies zmienne smarty.

  4. Zyx napisał:

    Z rozumieniem HTML-a sprawa jest prosta. Załóżmy, że mamy jakiś DIV i zachodzi potrzeba, aby dynamicznie doklejać do niego jakieś atrybuty w zależności od danych ze skryptu. Dla Smarty’ego znacznik DIV to zwykły tekst i jeśli chcesz coś takiego robić, musisz siedzieć godzinę i klepać między niesamowicie rozbudowany kod, a efekt jest taki, że zupełnie nie widać, co się tam później dzieje. Jeśli zaś system szablonów jest mądry i wie, że DIV to znacznik, który może mieć atrybuty, może udostępnić elegancką instrukcję, która potrafi warunkowo dodać odpowiedni kod. Nie wspomnę już o typowych, ale znacznie podnoszących czytelność kodu rozwiązaniach, jak instrukcje systemu szablonów w formie dodatkowych atrybutów czy weryfikacja składni kodu HTML w trakcie kompilacji szablonu. Ja już wielokrotnie dzięki temu znalazłem błędy w kodzie, których najprawdopodobniej nie wychwyciłbym inaczej na etapie tworzenia, gdy mam włączone rozmaite konsole debugowe i przełączenie się na application/xml+xhtml raczej nie wchodzi w grę. Popatrz sobie, jak to robią OPT 2 i PHPTAL, a zrozumiesz, o co chodzi.

  5. MariuszT napisał:

    Zyx, znam Twoje OPT i nie musisz przekonywać przekonanego :) Jestem mocno rozczarowany nowym Smarty. Nie wiem czy będę jeszcze z tego korzystał.

  6. Zyx napisał:

    Odpowiadałem raczej na komentarz powyżej :)

  7. lolek napisał:

    Funkcjonalność takiego TALa może się wydawać zbyt prosta( ale ze to jak łatwo się go implementuje :) ) ale to jeszcze nic – w frameworku Wicket (java) nie ma w szablonach nawet ifa nie mówiąc o pętlach – 100% czysty html nie licząc identyfikatorów. Naprawdę ciężko się z początku przestawić

  8. Zyx napisał:

    Dla mnie osobiście TAL to także zbyt mało, dlatego robię Open Power Template :) . Nie zmienia to jednak faktu, że język TAL jest jednym z nielicznych zaprojektowanych z głową, a nie na zasadzie „zrobię sobie system szablonów, który będzie oferować pętle i ify i siadam od razu do pisania”.

Odpowiedz



Podobne wpisy: