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
Обсуждение