Содержание
API шаблона на этапе выполнения
Класс WactTemplate - это потомок от WactRuntimeComponentDatasource, который в свою очередь наследуется от WactRuntimeComponent. Поэтому он поддерживает методы активного компонента и методы контейнера данных, а также набор других, упрощающих работу с шаблоном на этапе выполнения.
Мы опишем наиболее важные методы этих трех классов.
WactRuntimeComponent
Методы класса WactRuntimeComponent (limb/wact/src/components/WactRuntimeComponent):
- getId() - возвращает идентификатор активного компонента.
- addChild($child) - добавить новый дочерний элемент.
- findChild($ServerId) - возвращает дочерний активный компонент с указанным идентификаторов. Поиск ведется вниз по иерархии без ограничений.
- findChildByClass($class) - возвращает дочерний активный компонент указанного класса. Поиск ведется вниз по иерархии без ограничений.
- findParentByClass($class) - возвращает ближайший родительский активный компонент указанного класса. Поиск ведется вверх вплоть до корневого элемента.
- getRootComponent($item) - возвращает ссылку на корневой активный компонент. Этот метод может использовать внутри других классов активных компонентов.
- getDatasource() - возвращает ссылку на ближайший вверх по иерархии контейнер данных
- getDatasourceComponent() - возвращает ссылку на ближайший вверх по иерархии активный компонент с контейнером данных
- setChildDataSource($ServerId, $datasource) - ставит обычный контейнер данных указанному дочернему компоненту.
- setChildDataSet($ServerId, $datasource) - ставит списковый контейнер данных (итератор) указанному дочернему компоненту
Также внутри объекта доступны атрибуты:
- children - все дочерние элементы
- parent - родительский элемент
- id - идентификатор элемента
WactRuntimeDatasourceComponent
Класс WactRuntimeDatasourceComponent - это активный компонент с обычным контейнером данных.
Методы WactRuntimeDatasourceComponent:
- set($field, $value) - ставит переменную в контейнер данных
- get($field) - возвращает значение переменной из контейнера данных
- registerDataSource($datasource) - заменяет текущий контейнер данных новым.
Также WactRuntimeDatasourceComponent поддерживает интерфейс ArrayAccess.
Внутри WactRuntimeDatasourceComponent доступен атрибут $datasource.
WactTemplate
Методы класса WactTemplate:
- display() - выполняет шаблон и делает echo его код.
- capture() - выполняет шаблон и вызвращает его код.
- castToIterator($value) - статический метод, переводит переменную в итератор. Внутри WACT массивы всегда проходят через этот метод.
- makeObject($DataSource, $name) - статический метод, переводит набор данных в объект класса WactArrayObject, если необходимо.
Конструктор WactTemplate получает следующие параметры:
- template_path - путь до шаблона
- $config - объект, поддерживающий интерфейс WactTemplateConfig. Если параметр не указан, то используется WactDefaultTemplateConfig, работающий на основе файла setting.ini (см. раздел "Запуск WACT-шаблона. Только WACT-пакет").
- $locator - объект, поддерживающий интерфейс WactTemplateLocator. Если параметр не указан, то используется WactDefaultTemplateLocator

Обсуждение