Do tej pory oddzielałam logikę aplikacji od generowanego przez nią kodu HTML tworząc coś w rodzaju szablonu. Właściwie to była stworzona przeze mnie klasa (CHTML) wewnątrz której zdefiniowany był szablon strony. Klasa posiadała własne metody i atrybuty, które względnie wygodnie pozwalały obsługiwać ten szablon. Pozostałe klasy i funkcje aplikacji konstruowały dynamiczne elementy, przekazywały do obiektu klasy CHTML a ten był odpowiedzialny za poprawne wyświetlenie tego. Oczywiście dla każdego projektu klasę jej atrybuty i metody trzeba było konstruować od nowa. Oczywiście na bazie tego co już istniało, ale jednak.
Po zrealizowaniu kilku projektów tą metodą podjęłam decyzję (ludzie na szczęście się rozwijają). Koniec wyważania otwartych drzwi czas zainteresować się systemem szablonów smarty, uznawanym za najlepsze narzędzie pozwalające uniezależnić logikę aplikacji php od jej wyglądu. Myślę, że nie trzeba nikogo przekonywać, że takie rozseparowanie tych dwóch elementów znacznie ułatwia pracę, nie tylko wtedy gdy nad projektem pracuje zespół. I chyba nikogo nie trzeba przekonywać, że smarty to naprawdę najlepsze narzędzie. Czym jest a czym, nie jest smarty, co potrafi jakie ma funkcje itp nie będę tego opisywać szczegółowo. Od tego jest bardzo dobrze przetłumaczona przez Artura Kmerę dokumentacja (ewentualnie w innych językach na stronie projektu).
Do rzeczy. Zgodnie z przytoczoną tu dokumentacją system szablonów smarty wymaga serwera sieciowego, na którym zainstalowany jest PHP 4.0.6 lub nowszy. Najnowszą dystrybucję można pobrać z oficjalnej strony projektu smarty. Instalacja polega na utworzeniu w katalogu naszego projektu, podkatalogów:
- templates
- templates_c
- cache
- configs
Każdy z tych katalogów będzie wykorzystywany przez jeden z atrybutów klasy Smarty: $template_dir , $compile_dir, $config_dir i $casche_dir
Katalogi templates_c oraz cache muszą mieć ustawione prawa do zapisu dla użytkownika na którego prawach działa serwer WWW. Do katalogu projektu należy również skopiować:
- katalogi:
- plugins
- internals
- Oraz pliki:
- Smarty.class
- Smarty_Compiler.class
- Config_File.class
- debug.tpl
I to byłoby na tyle. Jak tworzyłam pierwszy szablon opisze w następnym odcinku.
Na koniec garść linków przydatnych szczególnie na początku:
- Forum (en)
- Wiki (en)
- WikiBooks
- Szablony by Adam Major
- Garść artykułów o szablonach by Włodzimierz Gajda