2. Konfiguracja parsera OPT
Domyślny parser OPT posiada wiele opcji pozwalających złagodzić lub zaostrzyć respektowanie standardu XML. W najbardziej okrojonej wersji (tzw. tryb tekstowy) parser wyszukuje jedynie swoje własne znaczniki, a całą resztę traktuje jak statyczny tekst, podobnie jak to robi PHP i Smarty. Jednak domyślne ustawienia kierują nas ku maksymalnej zgodności ze standardem, tj. OPT oczekuje od nas, że szablon będzie posiadać prolog, poprawnie podomykane znaczniki i całą resztę. Napisz sobie przykładowy szablon:
<?xml version="1.0" ?> <opt:root> <ul> <li>Element</li> <li>Element</li> <li>Element</li> </ul> </opt:root>
Po jego wykonaniu przez skrypt i zajrzeniu do źródeł nietrudno zauważyć, że OPT zapisał wszystko ciurkiem w jednej linijce:
<ul> <li>Element</li> <li>Element</li> <li>Element</li> </ul>
Nie jest to żaden błąd. Domyślnie OPT wycina z kodu zbędne białe znaki, aby zmniejszyć jego objętość i przy okazji utrudnić jego analizę osobom postronnym, co przydaje się na serwerach produkcyjnych. Jednak w trakcie tworzenia strony chcielibyśmy, aby wszystko wyglądało mniej więcej tak, jak napisaliśmy. W tym celu wyłączamy w konfiguracji opcję stripWhitespaces i rekompilujemy szablon:
$tpl = new Opt_Class; // ... $tpl->stripWhitespaces = false;
Aby wymusić rekompilację szablonu, po prostu usuwamy odpowiadający mu plik z katalogu wskazywanego przez compileDir. Przyjrzyjmy się teraz niektórym pozostałym opcjom wpływającym na rozumienie XML-a przez OPT:
- prologRequired
- Jeśli jest ustawiony na false, szablony nie muszą mieć prologu (prolog jest wtedy traktowany jako tekst do wyświetlenia).
- singleRootNode
- Z wartością false dopuszcza istnienie większej liczby głównych znaczników w pojedynczym szablonie.
- htmlAttributes
- Gdy jest włączona (true) dopuszcza stosowanie skróconej formy atrybutów bez podanej wartości.
- printComments
- Gdy jest włączona (true), komentarze XML są także wysyłane do przeglądarki.
- unicodeNames
- Standard XML dopuszcza stosowanie Unikodu w nazwach znaczników, lecz z powodów wydajnościowych w OPT ta opcja jest domyślnie wyłączona. Ta opcja pozwala ją uaktywnić.
W tym artykule zakładamy, że OPT pracuje na domyślnych ustawieniach.