8. Informacje końcowe
Na koniec warto zapamiętać kilka przydatnych informacji dotyczących przetwarzania XML-a przez OPT. W podanych przykładach widzieliśmy wykorzystywanie różnych przestrzeni nazw, przy czym pierwsze skrzypce odgrywała tutaj przestrzeń opt:. Warto zadać sobie pytanie, jak reaguje parser, gdy w przestrzeni takiej umieszczony jest znacznik, którego nie potrafi on rozpoznać? OPT dzieli przestrzenie nazw na dwa rodzaje:
- Przestrzenie użytkownika - nie ingerujemy w ich treść, znaczenie itd.
- Przestrzenie OPT - podlegają dalszemu przetwarzaniu przez parser.
OPT wyświetla pierwsze tak, jak są oraz nie wyświetla i stara się przetworzyć drugie. Przy napotkaniu elementu w stylu opt:foo, który oczywiście nie jest rozpoznawany przez żadną instrukcję, parser go ignoruje i pomija razem z zawartością, która nie pojawi się na wyjściu. Utrudnia to trochę wyłapywanie literówek, lecz jest konieczne, gdyż część instrukcji potrafi współpracować z takimi anonimowymi znacznikami i wykorzystać je do własnych potrzeb. Ponadto, odpowiednie znaczenie może nadać im sam programista, tworząc nową instrukcję lub rejestrując komponent.
Przestrzenie OPT muszą być zarejestrowane w głównym obiekcie. Domyślnie rejestrowane są trzy: opt, parse oraz str. Aby zarejestrować własną, stosujemy metodę register():
$tpl = new Opt_Class; // ... $tpl->register(Opt_Class::OPT_NAMESPACE, 'foo'); // ... $tpl->setup();
Teraz wśród zarejestrowanych przestrzeni mamy także foo i możemy do niej dodawać własne instrukcje, komponenty i bloki.