class App_View
{
/**
* Путь из URL, например '/company/about/'
*
* @var string
*/
private $_path;
/**
* Папка, где хранятся шаблоны
*
* @var string
*/
private $_dir;
/**
* Объект приложения, который доступен из шаблонов как $app
*
* @var App|null
*/
private $_app;
/**
*
* @param string $path Путь из URL
* @param string $dir Папка к шаблонам
* @param App|null $app Объект приложения
*/
public function __construct($path, $dir, App $app = null)
{
$this->_path = $path;
$this->_dir = $dir;
$this->_app = $app;
}
/**
* Метод предназначен для вызова из шаблонов.
* Выполняет компонент и возвращает результат его работы.
*
* @param string $component_name Название компонента.
* @param array|null $component_options Ассоц. массив опций компонента.
* @param string|null $return_array_key Если результат работы массив,
* то можно возвратить значение с заданным ключом.
* Если ключа не существует, возвратит NULL.
* @return array|scalar|null Returns FALSE if error occurred
*/
public function execute($component_name, array $component_options = null, $return_array_key = null)
{
}
/**
* Метод предназначен для вызова из шаблонов.
* "Накладывает" данные (ассоц. массив) на шаблон.
* При этом переменные в шаблоне имеют локальную область видимости (в рамках шаблона).
* Зарезервированные имена в шаблонах:
* $view -- объект App_View
* $app -- объект App
*
* @param string $template_name Имя шаблона, расширение указывать не нужно
* @param array|null $template_options
* @return string|array|bool Returns FALSE if error occurred
*/
public function render($template_name, array $template_options = null)
{
}
/**
* Метод предназначен для вызова из шаблонов.
* Комбинация self::execute() и self::render() в одном методе.
* Выполняет компонент, затем полученные от него данные подставляет в шаблон и возвращает результат работы.
* Если компонент возвращает не массив, то шаблон не используется и возвращается результат компонента.
*
* @param string $component_name Название компонента.
* Так же м. б. указано название шаблона после разделителя "|"
* @param array|null $component_options Опции компонента.
* @param string|null $template_name
* @param array|null $template_options
* @return string|array|bool|null Returns FALSE if error occurred
*/
public function run($component_name, array $component_options = null,
$template_name = null, array $template_options = null)
{
}
/**
* Метод предназначен для вызова из шаблонов.
* Маршрутизатор, выполняет метод self::run() по условию.
*
* @param string|bool|int|null $mixed Условие для выполнения метода self::run().
* string Путь из URL или шаблон пути в виде рег. выражения.
* выполняется, если строка совпадает с текущим путём из URL
* выполняется, строка или регулярное выражение (например: '~^/games/[^/]++/~sSX') совпадает с текущим путём из URL
* int > 0 выполняется, иначе нет
* bool true -- выполняется, иначе нет
* null не выполняется
* @param string $component_name Название компонента.
* Так же м. б. указано название шаблона после разделителя "|"
* Если $mixed это рег. выражение, то в названии компонента могут быть метки
* для замены захваченных подмасок на их значения, например: $0, $1, $2 ... $9
* @param array|null $component_options Опции компонента.
* @param string|null $template_name Название шаблона.
* Если $mixed это рег. выражение, то в названии шаблона могут быть метки
* для замены захваченных подмасок на их значения, например: $0, $1, $2 ... $9
* @param array|null $template_options Опции шаблона.
* @return string|array|bool|null Returns FALSE if error occurred
*/
public function route($mixed,
$component_name, array $component_options = null,
$template_name = null, array $template_options = null)
{
}
}