Invenzzia »

Open Power Libraries

PHP5 libraries

Open Power Libraries » FAQ: Open Power Template

FAQ: Open Power Template


Pytania ogólne

Czym jest system szablonów?
System szablonów jest specjalnym skryptem, który zarządza generowaniem kodu HTML Twojej strony internetowej. Jego zadaniem jest odseparowanie warstwy logiki, przetwarzającej dane, od ich wyświetlania (warstwy prezentacji). Skrypt wysyła do systemu szablonów wszystkie wygenerowane przez niego dane i zakłada, że będzie potrafił on przetworzyć je na kod HTML, który zostanie wysłany do użytkownika. Istotnym elementem są tutaj szablony - pliki tekstowe ze szkieletem kodu HTML oraz pozaznaczanymi miejscamy, w które mają trafić dane. W zależności od użytego systemu, może to być robione bezpośrednio w czystym PHP, lub przy pomocy dodatkowego języka upraszczającego to zadanie.
W czym może mi pomóc system szablonów?
Mając odseparowaną logikę od prezentacji, możesz łatwiej podzielić prace między Twój zespół. Programiści mogą skupić się na opracowywaniu algorytmów bez konieczności zastanawiania się, jak będą one wyświetlone. Natomiast webmasterzy tworzą kod HTML bez obawy, że przypadkowo skasują jakiś ważny kawałek kodu. System szablonów pozwala także stworzyć mechanizm skórek. Każda z nich jest oddzielnym zestawem szablonów, między którymi można się łatwo przełączać. Dobry system szablonów powinien również ułatwiać samo tworzenie szablonów, udostępniając zestaw narzędzi upraszczających najważniejsze zadania.
Dlaczego Open Power Template?
Istniejące systemy szablonów można liczyć w dziesiątkach, jeśli nie w setkach. OPT nie jest tworzonym amatorsko w wolnej chwili projektem, lecz owocem kilkuletniego doświadczenia popartego równie długą praktyką. Łączy w sobie wydajność, możliwości oraz wygodę użycia - czynnik, który w wielu tego typu bibliotekach szwankuje. Chcemy, aby twórca szablonów mógł w pełni skupić się na tym, co szablon ma wyświetlać, zamiast angażować jego czas na zastanawianie się, jak ma to robić. Dla polskiego użytkownika dodatkowym atutem będzie fakt, że jest to w pełni polski projekt, z polską dokumentacją oraz polskim wsparciem technicznym.
Po co mi kolejny język szablonów? PHP jest najlepszy do tego zadania.
W tej kwestii się właśnie nie zgadzamy. Zastanów się, dlaczego strony internetowe piszesz w PHP, a nie w C++ czy assemblerze? PHP już dawno przestał być językiem do zwykłego osadzania danych w kodzie; jego rozwlekłość i ogólność jest nie do zaakceptowania. Używamy systemów szablonów już bardzo długo i jesteśmy żywym dowodem na to, że jednak są lepsze narzędzia. Systemy szablonów już wielokrotnie ratowały nas z opresji, oszczędzając czas i nerwy właśnie dzięki możliwościom wspomnianego języka szablonów. Jeżeli tylko jest odpowiednio zaprojektowany, PHP nie jest w stanie mu dorównać. Klucze do sukcesu są dwa. Po pierwsze, należy używać odpowiedniego języka, który faktycznie ułatwia realizację typowych zadań, a nie jest tylko kalką struktur kontrolnych z PHP z lekko pozmienianą składnią. Po drugie, trzeba zerwać z przyzwyczajeniami i wprowadzić ścisłą dyscyplinę. Nawet Open Power Template zezwala na umieszczenie całej logiki w szablonie, ale nie tędy droga.

Stabilność

Czy Open Power Template 1 nadaje się do użytku?
Tak. Stabilne wydania są dostępne już od dłuższego czasu i mogą być używane do celów produkcyjnych.
Czy Open Power Template 2 nadaje się do użytku?
Na dzień dzisiejszy mocno odradzamy korzystanie z OPTv2 w prawdziwych projektach. Biblioteka jest wciąż w trakcie dynamicznego rozwoju, gdy dodawana jest nowa funkcjonalność. W każdej chwili może zostać zmieniona istotna część API i zerwana kompatybilność z wcześniejszymi wersjami. Ponadto mamy świadomość, że w kodzie wciąż znajduje się trochę błędów. Staramy się, aby OPTv2 był gotowy do testów już pod koniec marca. Jednak jeśli chcesz zobaczyć możliwości oferowane przez nową wersję lub sprawdzić, jak się z nią pracuje, nie wahaj się. Teraz jest najlepszy czas na nadsyłanie własnych uwag i pomysłów, a także wykrytych błędów.
Czy Open Power Template zadziała na PHP4?
Nie. Nigdy nie planowaliśmy wsparcia dla tej wersji, tym bardziej teraz, kiedy twórcy PHP wycofują się już z jej rozwoju. Jeżeli nadal z niej korzystasz, rozważ jak najszybszą aktualizację.
Czy Open Power Template zadziała na PHP5?
Wersja 1.x powinna działać na wszystkich wersjach PHP5. OPT 2.0.0 nie wspiera najstarszych wydań, 5.0.x, gdyż nie mają one niektórych wymaganych elementów oraz są niestabilne. Należy więc używać przynajmniej PHP 5.1.
Czy Open Power Template zadziała na PHP6?
Taką mamy nadzieję. W każdym razie, gdy będzie już znacznie bliżej oficjalnej premiery, dołożymy wszelkich starań, aby biblioteki OPL były z nią w pełni kompatybilne, gdyż na temat wersji rozwojowych ciężko cokolwiek prorokować. Kod, który działa na dzisiejszym snapshocie, może zupełnie sypać się następnego dnia i na odwrót.

Open Power Template 2.0.0 - rozwój

Dostaję “Fatal error: Nesting level too deep - recursive dependency?”

Problem jest znany. Wynika on z faktu, że w PHP istnieje ograniczenie dotyczące głębokości stosu wywołań funkcji,czyli również głębokości rekurencji, a z tej kompilator korzysta mocno podczas kompilowania szablonów. Nie wszystkie algorytmy zostały jeszcze przepisane i przetestowane tak, aby omijać to ograniczenie, jednak prace te zostaną zakończone przed wydaniem wersji finalnej. Limitu tego w normalnym PHP nie da się zmienić, a wszystkie pliki testowe dołączone do archiwów w nim działają. Jeżeli u Ciebie tak nie jest, sprawdź następujące rzeczy:

  1. Czy korzystasz z XDebug? Rozszerzenie to pozwala na zmianę tego limitu.
  2. Czy posiadasz aktualną wersję PHP? Dostaliśmy sygnały, że problem pojawia się na niektórych konkretnych wersjach PHP (np. 5.2.0) oraz że aktualizacja do najnowszej (5.2.6) pomaga.

Pamiętaj także, że OPT, jak każda biblioteka, musi funkcje wywoływać. Jeśli wywołasz metodę parse() zagnieżdżoną np. w 60-ciu wywołaniach innych funkcji, wtedy sam nie dajesz parserowi możliwości ukończenia zadania. Dotyczy to każdego systemu szablonów, nie tylko OPT.

Materiały

Gdzie mogę znaleźć jakiś tutorial do OPT?
W Internecie dostępnych jest kilka artykułów poświęconych Open Power Template’owi. Na początek polecamy dwuczęściowy tekst “Wprowadzenie do OPT”, zaś później przyda się “OPT w praktyce”. Znaleźć je możesz np. w internetowej bazie artykułów eioba.pl