1. Czym jest SMARTY

Smarty jest systemem szablonowym dla PHP. Służy ułatwieniu oddzielenia logiki aplikacji od jej wyglądu . Najlepiej opisuje go sytuacja kiedy programista aplikacji i projektant szablonów mają do spełnienia różne role (bo przecież w większości przypadków to nie jest ta sama osoba). Na przykład, powiedzmy, że projektujesz stronę web która wyświetla artykuł z gazety. Nagłówek, stopka autor i treść są elementami zawartymi w artykule, przyporządkowany im numer mówi nam w jaki sposób poszczególne elementy będą prezentowane. Elementy zostają przyporządkowane przez aplikacje do Smarty, wtedy projektant szablonów edytuje szablony używając kombinacji znaczników HTML i znaczników szablonu do formatowania prezentacji tych elementów (tabelki HTML, kolory tła, wielkość czcionek, arkusze stylów, itd.). Pewnego dnia programista potrzebuje zmienić sposób w jaki dane artykułu są pozyskiwane (zmiana logiki aplikacji). Ta zmiana nie interesuje projektanta szablonu, dane artykułu dalej będą dostarczane do szablonu w ten sam sposób. Podobnie, jeżeli projektant szablonu chce totalnie zmienić wygląd szablonu, nie wymaga to zmiany w logice aplikacji. Dlatego programista może zmieniać logikę aplikacji bez potrzeby restrukturyzacji szablonów, a projektant szablonów może modyfikować szablony bez łamania logiki aplikacji.

Teraz kilka słów o tym czego SMARTY nie robi. Smarty nie próbuje całkowicie oddzielić logiki od szablonów. Nie ma problemu z logiką w twoich szablonach pod warunkiem,że ta logika służy tylko do prezentacji. Krótka rada: trzymaj logikę aplikacji z dala od szablonów i logikę prezentacji z dala od aplikacji. To definitywnie utrzyma twoją witrynę jako w pełni i łatwo edytowalną w przyszłości.

Jednym z unikalnych aspektów Smarty jest kompilowanie szablonów. To znaczy, że Smarty czyta plik szablonu i tworzy dla niego skrypt PHP. Kiedy już jest stworzony, szablony uruchamiane są przez ten skrypt. Dlatego nie ma potrzeby parsowania plików szablonów dla każdego żądania, równocześnie każdy szablon jest w pełni obrabialny dal kompilerów PHP takich jak Zend Accelerator (http://www.zend.com) albo PHP Accelerator (http://www.php-accelerator.co.uk).

Niektóre z własności Smarty:

  1. Jest ekstremalnie szybki.

  2. Jest efektywny odkąd parser PHP przejął "brudną robotę".

  3. Nie parsuje szablonu za każdym razem, tylko raz kompiluje.

  4. Rekompiluje tylko te szablony które się zmieniły.

  5. Język szablonów jest ekstremalnie elastyczny ponieważ możesz tworzyć własne funkcje oraz własne modyfikatory zmiennych.

  6. Konfiguralne znaczniki wyrażeń szablonów, możesz używać {}, {{}}, <!—{}--!>, itd.

  7. Konstrukcje if/elseif/else/endif są przekazywane do parsera PHP, więc wyrażenie {if...} może być proste lub kompleksowe – jak sobie życzysz.

  8. Nieograniczone zagnieżdżanie sekcji, if-ów itd.

  9. Jeśli to potrzebne można osadzić kod PHP w plikach szablonów, jednak jest to czynność nie polecana.

  10. Wbudowane keszowanie.

  11. Mozliwa własna konfiguracja źródeł szablonów.

  12. Architektura oparta o wtyczki.

  13. Architektura pozwalająca wykorzystywać własne rozszeżenia.