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.