Programmer's Reference Guide
| Zend_Layout - Быстрый старт |
Опции конфигурирования Zend_Layout
Zend_Layout имеет свой набор конфигурационных опций. Они
могут быть установлены путем вызова соответствующих аксессоров, путем
передачи массива или объекта Zend_Config конструктору или
методу startMvc(), передачей массива опций методу
setOptions() или передачей объекта Zend_Config
методу setConfig().
layout: используемый макет. Использует текущий инфлектор для определения пути к скрипту макета, соответствующего данному имени макета. По умолчанию используется имя 'layout', и оно соответствует скрипту 'layout.phtml'. Аксессоры -
setLayout()иgetLayout().layoutPath: базовый путь к скрипту макета. Аксессоры:
setLayoutPath()иgetLayoutPath().contentKey: переменная макета, используемая для содержимого по умолчанию (при использовании с компонентами MVC). Значением по умолчанию является 'content'. Аксессоры -
setContentKey()иgetContentKey().mvcSuccessfulActionOnly: действует при использовании с компонентами MVC. Если действие бросает исключение, и этот флаг установлен в true, то рендеринг макета не будет произведен (это сделано для предотвращения повторного рендеринга макета при использовании плагина ErrorHandler). По умолчанию он установлен в true. Аксессоры -
setMvcSuccessfulActionOnly()иgetMvcSuccessfulActionOnly().view: объект вида, используемый для рендеринга. При использовании с компонентами MVC
Zend_Layoutбудет пытаться использовать объект вида, зарегистрированный в ViewRenderer, если объект вида не был передан явным образом. Аксессоры -setView()иgetView().helperClass: класс помощника действия, применяемый при использовании
Zend_Layoutс компонентами MVC. По умолчанию этоZend_Layout_Controller_Action_Helper_Layout. Аксессоры -setHelperClass()иgetHelperClass().pluginClass: класс плагина фронт-контроллера, применяемый при использовании
Zend_Layoutс компонентами MVC. По умолчанию этоZend_Layout_Controller_Plugin_Layout. Аксессоры -setPluginClass()иgetPluginClass().inflector: инфлектор, используемый для определения путей к скрипту вида по имени макета, подробнее об этом читайте в документации по инфлектору
Zend_Layout. Аксессоры -setInflector()иgetInflector().
Замечание: helperClass и pluginClass должны передаваться startMvc()
Для того чтобы установка опцийhelperClassиpluginClassпроизвела нужный эффект, эти опции должны быть переданы методуstartMvc(). Если они устанавливаются позже, то это не произведет нужного действия.
Примеры
Следующие примеры предполагают наличие следующих массива опций и объекта конфигурации:
<?php
$options = array(
'layout' => 'foo',
'layoutPath' => '/path/to/layouts',
'contentKey' => 'CONTENT', // игнорируется, если не используется MVC
);
?><?php
/**
[layout]
layout = "foo"
layoutPath = "/path/to/layouts"
contentKey = "CONTENT"
*/
$config = new Zend_Config_Ini('/path/to/layout.ini', 'layout');
?>Пример #1 Передача опций конструктору или startMvc()
Как конструктор, так и статический метод startMvc()
могут принимать массив опций или объект Zend_Config
с опциями для конфигурирования экземпляра
Zend_Layout.
Передача массива:
<?php // Использование конструктора: $layout = new Zend_Layout($options); // Использование startMvc(): $layout = Zend_Layout::startMvc($options); ?>
Использование объекта конфигурации:
<?php
$config = new Zend_Config_Ini('/path/to/layout.ini', 'layout');
// Использование конструктора:
$layout = new Zend_Layout($config);
// Использование startMvc():
$layout = Zend_Layout::startMvc($config);
?>
Как правило, это наиболее легкий способ настройки экземпляра
Zend_Layout.
Пример #2 Использование setOption() и setConfig()
Иногда нужно сконфигурировать объект Zend_Layout
после того, как он уже был инстанцирован. Методы
setOptions() и setConfig() позволяют
сделать это легко и быстро:
<?php // Использование массива опций: $layout->setOptions($options); // Использование объекта Zend_Config: $layout->setConfig($options); ?>
Но следует иметь в виду, что некоторые опции, такие, как
pluginClass и helperClass не будут
действовать, если были переданы с использованием этих методов,
их следует передавать конструктору или методу
startMvc().
Пример #3 Использование аксессоров
И наконец, вы можете конфигурировать свой экземпляр с помощью аксессоров. Все аксессоры реализуют fluent interface, это значит, что их вызовы могут следовать непосредственно друг за другом:
<?php
$layout->setLayout('foo')
->setLayoutPath('/path/to/layouts')
->setContentKey('CONTENT');
?>| Zend_Layout - Быстрый старт |
