23. Styczeń 2010

Nie należę do grupy osób, które chętnie przeglądają internetowe tutoriale. Po prostu wolę tradycyjny papier i książki, z nich potrafię się uczyć, z ebooków nie za bardzo (przy komputerze skupienie nie przychodzi tak łatwo). Książkę w przeciwieństwie do komputera można zabrać niemal wszędzie, nawet jeżeli używam laptopa, a poza tym jest więcej czasu aby “przetrawić” nowe wiadomości. Oczywiście sprawa nie dotyczy różnorakich oficjalnych dokumentacji – taki manual php jest przeze mnie otwierany dosyć regularnie i bez żadnych oporów. Niemniej jednak, niechęć do kursów internetowych spowodowała, że dopiero niedawno zaznajomiłem się nieco z szablonami stosowanymi w aplikacjach PHP.

Znalazłem na allegro i kupiłem książkę z Helionu opisującą system Smarty, bo ten polecają niemal wszędzie gdzie zapytamy o szablony. Już po tygodniu użytkowania wiem, że wszelkie przyszłe projekty (nawet te niewielkie) będę realizował właśnie z użyciem systemów od obsługi szablonów. Skąd ta moja zmiana? Ano człowiek zauważył, jakie to cholerstwo potrafi być wygodne – choć plików w projekcie mamy “odpowiednio więcej”, to sama wygoda pisania czegokolwiek jest już naprawdę wysoka, ponieważ można oddzielić warstwę logiki od warstwy prezentacji. Przydałoby się co prawda z logiki wydzielić jeszcze wszystko co tyczy się komunikacją z bazą danych, ale to przyjdzie z czasem, tym bardziej, że przeczytałem już wiele na temat problemów wydajnościowych związanych z nr. ORMami.

Jak widzicie nieco ciężko mi wyrazić myśli, więc dajmy tutaj przykład, z którego korzystałem i korzystam nadal – CMS PHP-Fusion. Istnieje w nim domyślnie 1 plik faktycznie odpowiadający za wygląd strony nazwany po prostu theme.php. Znajdują się w nim funkcje np. od “rysowania” newsa, artykułu czy panelu z dowolną zawartością. Mimo to, bardzo dużo kodu znajdziemy w samych plikach odpowiadających za ustalenie, o które materiały w ogóle nam chodzi gdy przeglądamy witrynę. Oczywiście większość dostępnych skórek zbudowana jest na tabelkach, zaś komplikacja i czytelność kodu zawartego w theme.php prosi się jedynie o pomstę do sił wyższych – totalny burdel to naprawdę zbyt delikatne określenie. Możliwości wygodnych zmian, czy też tworzenia innych schematów dla specyficznych materiałów są mocno ograniczone.

Stosując Smarty, lub też jakikolwiek inny system szablonów jesteśmy uwolnieni od takiego bajzlu, o ile oczywiście odseparujemy dane w odpowiedni sposób. Pewną wadą takich rozwiązań jest często stopień ich zaawansowania – w szablonach znajdziecie elementy odpowiadające warunkom if, pętle różnego typu czy modyfikatory. Powoduje to, że czasami oddzielając logikę od prezentacji, tworzymy nowy stopień logiki w warstwie prezentacji. Często jest to działanie celowe (np. kolorujemy naprzemiennie kolejne wiersze tabeli), a czasami przekraczamy tą cienką granicę no i pogrążamy wszystko w jeszcze większym nieporządku. Kapitalną zaletą takiego Smarty jest sposób działania – szablony są komplikowane do postaci plików php i dopiero z nich normalnie korzysta aplikacja. Dostępne jest również buforowanie treści w taki sposób, że często nie musimy używać innych mechanizmów aby realizować ideę cachowania blokowego.

Tak czytam co napisałem wyżej i wygląda do dosyć dziwnie, nie sądzicie? No ale podawać przykładów nie będę, ponieważ takie pokazujące potęgę silników szablonów mogą zajmować dosyć sporo miejsca. Wiem jednak, że obecnie preferuję ich stosowanie i nie mogę sam zrozumieć siebie, dlaczego zainteresowałem się nimi dopiero tak niedawno. Za jakiś czas chcę przyjrzeć się drugiemu systemowi, który również jest bardzo często wychwalany w środowiskach webmasterskich – Open Power Template. Jest to polska produkcja, która ułatwia stworzenie prezentacji dla plików XML i kodu XHTML. Hm… może uda się upiec dwie pieczenie na jednym ogniu?

Podobne wpisy:

5 komentarzy

Dodaj komentarz
  1. Hmm, a mógłbyś podać nazwę tej książki, bo w Helionie trochę jest tych książek o Smarty ;P

  2. Ja tam na niej widzę tylko że jest z Helionu, no i że chodzi o Smarty… nie wiem jak inaczej to wytłumaczyć :)

  3. Możesz podać autora, tytuł itp. :)

  4. No przecież na Allegro jest tylko 1 z Helionu…

    “Smarty. Szablony w aplikacjach PHP”
    Autor: H. Hayder, J. P. Maia, L. Gheorge

    Jedyna jej wada to fakt, że wydali ja ponad 3 lata temu… sporo się zmieniło w Smarty 3, choć nie ma problemu aby używać rzeczy podanych w książce.

  5. Ja osobiście nie korzystam z żadnego systemu szablonów, pisząc “w kohanie” mam świetny wzorzec MVC który daje mi dość ogromną swobodę w tworzeniu aplikacji.

Twój komentarz