Systemy szablonów - podsumowanie

2008-11-29 12:40

Nadeszła pora na podsumowanie tematu systemów szablonów. Nie da się ukryć, że większość aktywnych programistów nie widzi już potrzeby korzystania z systemów szablonów. Świadczą o tym wpisy na blogach zagranicznych np. Paul M. Jones czy Hasin Hayder, który nawet napisał swego czasu książkę o Smarty. Warto także dodać, że do powolnego odchodzenia od Smarty (bo to głównie ten system szablonów był używany) znacząco przyczynił się brak nowej wersji, która nota bene właśnie nie dawno wyszła w wersji 3.0 alpha. Spóźnili się jednak o kilka lat. Powinno to wyjść w tym samym czasie co PHP5.

Wróćmy jednak do początku, dlaczego powstały systemy szablonów to chyba każdy wie? Ale dla porządku krótkie przypomnienie. Chodziło o oddzielenie warstwy logicznej od prezentacji. Było to za czasów kiedy jeszcze w PHP nikt nie korzystał z wzorca MVC, a programowanie obiektowe raczkowało. Dzięki korzystaniu z szablonów programistom łatwiej było tworzyć uporządkowany kod, przede wszystkim dzięki ograniczeniu liczby dostępnych funkcji w szablonach. Mieli mniejsze pole do popisu by robić cuda. Oczywiście jak ktoś się postarał to i tak potrafił zrobić bajzel.

Składnia w systemach szablonów jest bardziej przejrzysta niż ta w PHP. Osoby, które zajmują się HTML na pewno przyjemniej patrzą na kod napisany przy użyciu szablonów. Jednak nie może to być czynnik decydujący w mojej ocenie. Bardziej skomplikowane elementy i tak musi podłączać programista. Nauka umieszczania znaczników PHP nie będzie znacząco dłuższa niż tych z systemu szablonu.

Tak samo mało przekonującym argumentem dla mnie (tym razem przeciwko stosowaniu systemów szablonów typu Smarty) jest fakt, że szablony wolniej działają. Są przecież zamieniane na kod PHP więc co najwyżej wygenerowany kod PHP nie jest tak super zoptymalizowany, ale przecież tutaj nie ma żadnych ważnych wyliczeń więc to są mało znaczące różnice.

Są jednak serwisy/projekty, w których użycie jakiegoś systemu szablonu jest konieczne. Przykładem mogą być systemy blogowe, gdzie użytkownik ma możliwość dostosowania wyglądu do swoich potrzeb. W takim przypadku dostęp do funkcji PHP nie mógłby być możliwy, toteż zastosowanie systemu szablonów (a może powinienem napisać listy znaczników) jest jedynym, słusznym wyjściem.

Kolejny przypadek, który mi przyszedł do głowy to utworzenie np. systemu CMS, który chcemy sprzedawać, ale z zamkniętym kodem. Czyli stosujemy jakiś PHP Encoder. Kod PHP jest zabezpieczony, a dzięki zastosowaniu szablonów istnieje prosty sposób modyfikacji wyglądu strony.

W innych przypadkach nie bardzo jest chyba sens stosowania systemu szablonów. Z takim nastawieniem wyszli programiści prawie (wszystkich?) liczących się frameworków. Programiści Zend w swoich frameworku także postawili na czysty PHP, do tego wszystkiego projekt Smarty z subdomeny smarty.php.net został przeniesiony na domenę smarty.net.

Niektórzy nie chcą odejść od Smarty bo po prostu im się na tym lepiej pracuje, ale niestety z uwagi na to, że Smarty jest dalej w PHP4, a prace na PHP5 dopiero wystartowały ambitni programiści nie mają wyboru. Powinni porzucić rozwiązania, które stoją w miejscu bo przez to zostają w tyle. Swego czasu tyle się mówiło o CakePHP czy CodeIgniter, obrały drogę, że pozostaną kompatybilne z PHP4. Aktualnie PHP4 już nie ma więc tym samym te frameworki nie są nowoczesne. Nie korzystają z dobrodziejstw PHP5, a dobre firmy przeszły na zend czy symfony. Mniejsze firmy dalej stoją w miejscu bo szkoda im czasu / pieniędzy na inwestowanie w nowe technologie, ale to się kiedyś obróci przeciwko nim.

Słowa kluczowe: PHP, Szablony, Techblog, cms, framework, szablony, artykuł, blog

Projektowanie i tworzenie stron www w PHP5. Opisy i recenzje oprogramowania typu cms, blog, wiki, open source.
Wszelkie prawa zastrzeżone.