Главная / Zend Manual Core
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().

Note: helperClass и pluginClass должны передаваться startMvc()
Для того чтобы установка опций helperClass и pluginClass произвела нужный эффект, эти опции должны быть переданы методу startMvc(). Если они устанавливаются позже, то это не произведет нужного действия.

Примеры

Следующие примеры предполагают наличие следующих массива опций $options и объекта конфигурации $config:

  1. $options = array(
  2.     'layout'     => 'foo',
  3.     'layoutPath' => '/path/to/layouts',
  4.     'contentKey' => 'CONTENT', // игнорируется, если не используется MVC
  5. );
  1. /**
  2. [layout]
  3. layout = "foo"
  4. layoutPath = "/path/to/layouts"
  5. contentKey = "CONTENT"
  6. */
  7. $config = new Zend_Config_Ini('/path/to/layout.ini', 'layout');

Example #1 Передача опций конструктору или startMvc()

Как конструктор, так и статический метод startMvc() могут принимать массив опций или объект Zend_Config с опциями для конфигурирования экземпляра Zend_Layout.

Передача массива:

  1. // Использование конструктора:
  2. $layout = new Zend_Layout($options);
  3.  
  4. // Использование startMvc():
  5. $layout = Zend_Layout::startMvc($options);

Использование объекта конфигурации:

  1. $config = new Zend_Config_Ini('/path/to/layout.ini', 'layout');
  2.  
  3. // Использование конструктора:
  4. $layout = new Zend_Layout($config);
  5.  
  6. // Использование startMvc():
  7. $layout = Zend_Layout::startMvc($config);

Как правило, это наиболее легкий способ настройки экземпляра Zend_Layout.

Example #2 Использование setOption() и setConfig()

Иногда нужно сконфигурировать объект Zend_Layout после того, как он уже был инстанцирован. Методы setOptions() и setConfig() позволяют сделать это легко и быстро:

  1. // Использование массива опций:
  2. $layout->setOptions($options);
  3.  
  4. // Использование объекта Zend_Config:
  5. $layout->setConfig($options);

Но следует иметь в виду, что некоторые опции, такие, как pluginClass и helperClass не будут действовать, если были переданы с использованием этих методов, их следует передавать конструктору или методу startMvc().

Example #3 Использование аксессоров

И наконец, вы можете конфигурировать свой экземпляр Zend_Layout с помощью аксессоров. Все аксессоры реализуют fluent interface, это значит, что их вызовы могут следовать непосредственно друг за другом:

  1. $layout->setLayout('foo')
  2.        ->setLayoutPath('/path/to/layouts')
  3.        ->setContentKey('CONTENT');

Zend_Layout - Быстрый старт