| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213 |
- <sect1 id="zend.layout.options">
- <title>Опции конфигурирования Zend_Layout</title>
- <para>
- <code>Zend_Layout</code> имеет свой набор конфигурационных опций. Они
- могут быть установлены путем вызова соответствующих аксессоров, путем
- передачи массива или объекта <code>Zend_Config</code> конструктору или
- методу <code>startMvc()</code>, передачей массива опций методу
- <code>setOptions()</code> или передачей объекта <code>Zend_Config</code>
- методу <code>setConfig()</code>.
- </para>
- <itemizedlist>
- <listitem><para>
- <emphasis>layout</emphasis>: используемый макет. Использует
- текущий инфлектор для определения пути к скрипту макета,
- соответствующего данному имени макета. По умолчанию используется имя 'layout', и оно соответствует скрипту
- 'layout.phtml'. Аксессоры - <code>setLayout()</code> и
- <code>getLayout()</code>.
- </para></listitem>
- <listitem><para>
- <emphasis>layoutPath</emphasis>: базовый путь к скрипту макета.
- Аксессоры: <code>setLayoutPath()</code> и
- <code>getLayoutPath()</code>.
- </para></listitem>
- <listitem><para>
- <emphasis>contentKey</emphasis>: переменная макета, используемая
- для содержимого по умолчанию (при использовании с компонентами
- MVC). Значением по умолчанию является 'content'. Аксессоры -
- <code>setContentKey()</code> и
- <code>getContentKey()</code>.
- </para></listitem>
- <listitem><para>
- <emphasis>mvcSuccessfulActionOnly</emphasis>: действует при
- использовании с компонентами MVC. Если действие бросает
- исключение, и этот флаг установлен в true, то рендеринг макета
- не будет произведен (это сделано для предотвращения повторного
- рендеринга макета при использовании
- <link linkend="zend.controller.plugins.errorhandler">плагина
- ErrorHandler</link>). По умолчанию он установлен в true.
- Аксессоры - <code>setMvcSuccessfulActionOnly()</code> и
- <code>getMvcSuccessfulActionOnly()</code>.
- </para></listitem>
- <listitem><para>
- <emphasis>view</emphasis>: объект вида, используемый для
- рендеринга. При использовании с компонентами MVC
- <code>Zend_Layout</code> будет пытаться использовать объект
- вида, зарегистрированный в
- <link
- linkend="zend.controller.actionhelpers.viewrenderer"> ViewRenderer</link>, если объект вида не был передан явным
- образом. Аксессоры - <code>setView()</code> и
- <code>getView()</code>.
- </para></listitem>
- <listitem><para>
- <emphasis>helperClass</emphasis>: класс помощника действия,
- применяемый при использовании <code>Zend_Layout</code> с
- компонентами MVC. По умолчанию это
- <code>Zend_Layout_Controller_Action_Helper_Layout</code>.
- Аксессоры - <code>setHelperClass()</code> и
- <code>getHelperClass()</code>.
- </para></listitem>
- <listitem><para>
- <emphasis>pluginClass</emphasis>: класс плагина
- фронт-контроллера, применяемый при использовании
- <code>Zend_Layout</code> с компонентами MVC. По умолчанию это
- <code>Zend_Layout_Controller_Plugin_Layout</code>. Аксессоры -
- <code>setPluginClass()</code> и
- <code>getPluginClass()</code>.
- </para></listitem>
- <listitem><para>
- <emphasis>inflector</emphasis>: инфлектор, используемый для
- определения путей к скрипту вида по имени макета, подробнее об
- этом читайте в <link
- linkend="zend.layout.advanced.inflector">документации по инфлектору <code>Zend_Layout</code></link>.
- Аксессоры - <code>setInflector()</code>
- и <code>getInflector()</code>.
- </para></listitem>
- </itemizedlist>
- <note>
- <title>helperClass и pluginClass должны передаваться startMvc()</title>
- <para>
- Для того чтобы установка опций <code>helperClass</code> и
- <code>pluginClass</code> произвела нужный эффект, эти опции должны
- быть переданы методу <code>startMvc()</code>. Если они
- устанавливаются позже, то это не произведет нужного действия.
- </para>
- </note>
- <sect2 id="zend.layout.options.examples">
- <title>Примеры</title>
- <para>
- Следующие примеры предполагают наличие следующих массива опций и
- объекта конфигурации:
- </para>
- <programlisting language="php"><![CDATA[<?php
- $options = array(
- 'layout' => 'foo',
- 'layoutPath' => '/path/to/layouts',
- 'contentKey' => 'CONTENT', // игнорируется, если не используется MVC
- );
- ?>]]></programlisting>
- <programlisting language="php"><![CDATA[<?php
- /**
- [layout]
- layout = "foo"
- layoutPath = "/path/to/layouts"
- contentKey = "CONTENT"
- */
- $config = new Zend_Config_Ini('/path/to/layout.ini', 'layout');
- ?>]]></programlisting>
- <example id="zend.layout.options.examples.constructor">
- <title>Передача опций конструктору или startMvc()</title>
- <para>
- Как конструктор, так и статический метод <code>startMvc()</code>
- могут принимать массив опций или объект <code>Zend_Config</code>
- с опциями для конфигурирования экземпляра
- <code>Zend_Layout</code>.
- </para>
- <para>
- Передача массива:
- </para>
- <programlisting language="php"><![CDATA[<?php
- // Использование конструктора:
- $layout = new Zend_Layout($options);
- // Использование startMvc():
- $layout = Zend_Layout::startMvc($options);
- ?>]]></programlisting>
- <para>
- Использование объекта конфигурации:
- </para>
- <programlisting language="php"><![CDATA[<?php
- $config = new Zend_Config_Ini('/path/to/layout.ini', 'layout');
- // Использование конструктора:
- $layout = new Zend_Layout($config);
- // Использование startMvc():
- $layout = Zend_Layout::startMvc($config);
- ?>]]></programlisting>
- <para>
- Как правило, это наиболее легкий способ настройки экземпляра
- <code>Zend_Layout</code>.
- </para>
- </example>
- <example id="zend.layout.options.examples.setoptionsconfig">
- <title>Использование setOption() и setConfig()</title>
- <para>
- Иногда нужно сконфигурировать объект <code>Zend_Layout</code>
- после того, как он уже был инстанцирован. Методы
- <code>setOptions()</code> и <code>setConfig()</code> позволяют
- сделать это легко и быстро:
- </para>
- <programlisting language="php"><![CDATA[<?php
- // Использование массива опций:
- $layout->setOptions($options);
- // Использование объекта Zend_Config:
- $layout->setConfig($options);
- ?>]]></programlisting>
- <para>
- Но следует иметь в виду, что некоторые опции, такие, как
- <code>pluginClass</code> и <code>helperClass</code> не будут
- действовать, если были переданы с использованием этих методов,
- их следует передавать конструктору или методу
- <code>startMvc()</code>.
- </para>
- </example>
- <example id="zend.layout.options.examples.accessors">
- <title>Использование аксессоров</title>
- <para>
- И наконец, вы можете конфигурировать свой экземпляр с
- помощью аксессоров. Все аксессоры реализуют fluent
- interface, это значит, что их вызовы могут следовать
- непосредственно друг за другом:
- </para>
- <programlisting language="php"><![CDATA[<?php
- $layout->setLayout('foo')
- ->setLayoutPath('/path/to/layouts')
- ->setContentKey('CONTENT');
- ?>]]></programlisting>
- </example>
- </sect2>
- </sect1>
- <!--
- vim:se ts=4 sw=4 et:
- -->
|