|
|
@@ -1,96 +1,112 @@
|
|
|
+<?xml version="1.0" encoding="UTF-8"?>
|
|
|
+<!-- EN-Revision: 22748 -->
|
|
|
+<!-- Reviewed: no -->
|
|
|
<sect1 id="zend.layout.options">
|
|
|
<title>Опции конфигурирования Zend_Layout</title>
|
|
|
|
|
|
<para>
|
|
|
- <code>Zend_Layout</code> имеет свой набор конфигурационных опций. Они
|
|
|
+ <classname>Zend_Layout</classname> имеет свой набор конфигурационных опций. Они
|
|
|
могут быть установлены путем вызова соответствующих аксессоров, путем
|
|
|
- передачи массива или объекта <code>Zend_Config</code> конструктору или
|
|
|
- методу <code>startMvc()</code>, передачей массива опций методу
|
|
|
- <code>setOptions()</code> или передачей объекта <code>Zend_Config</code>
|
|
|
- методу <code>setConfig()</code>.
|
|
|
+ передачи массива или объекта <classname>Zend_Config</classname> конструктору или
|
|
|
+ методу <methodname>startMvc()</methodname>, передачей массива опций методу
|
|
|
+ <methodname>setOptions()</methodname> или передачей объекта
|
|
|
+ <classname>Zend_Config</classname> методу <methodname>setConfig()</methodname>.
|
|
|
</para>
|
|
|
|
|
|
<itemizedlist>
|
|
|
- <listitem><para>
|
|
|
- <emphasis>layout</emphasis>: используемый макет. Использует
|
|
|
- текущий инфлектор для определения пути к скрипту макета,
|
|
|
- соответствующего данному имени макета. По умолчанию используется имя 'layout', и оно соответствует скрипту
|
|
|
- 'layout.phtml'. Аксессоры - <code>setLayout()</code> и
|
|
|
- <code>getLayout()</code>.
|
|
|
- </para></listitem>
|
|
|
-
|
|
|
- <listitem><para>
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <emphasis>layout</emphasis>: используемый макет. Использует текущий инфлектор для
|
|
|
+ определения пути к скрипту макета, соответствующего данному имени макета.
|
|
|
+ По умолчанию используется имя 'layout', и оно соответствует скрипту
|
|
|
+ '<filename>layout.phtml</filename>'. Аксессоры -
|
|
|
+ <methodname>setLayout()</methodname> и <methodname>getLayout()</methodname>.
|
|
|
+ </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>
|
|
|
+ Аксессоры: <methodname>setLayoutPath()</methodname> и
|
|
|
+ <methodname>getLayoutPath()</methodname>.
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <emphasis>contentKey</emphasis>: переменная макета, используемая для содержимого по
|
|
|
+ умолчанию (при использовании с компонентами <acronym>MVC</acronym>). Значением по
|
|
|
+ умолчанию является 'content'. Аксессоры - <methodname>setContentKey()</methodname> и
|
|
|
+ <methodname>getContentKey()</methodname>.
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
<emphasis>mvcSuccessfulActionOnly</emphasis>: действует при
|
|
|
- использовании с компонентами MVC. Если действие бросает
|
|
|
+ использовании с компонентами <acronym>MVC</acronym>. Если действие бросает
|
|
|
исключение, и этот флаг установлен в 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>
|
|
|
+ <link linkend="zend.controller.plugins.standard.errorhandler">плагина
|
|
|
+ ErrorHandler</link>). По умолчанию он установлен в <constant>TRUE</constant>.
|
|
|
+ Аксессоры - <methodname>setMvcSuccessfulActionOnly()</methodname> и
|
|
|
+ <methodname>getMvcSuccessfulActionOnly()</methodname>.
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <emphasis>view</emphasis>: объект вида, используемый для рендеринга. При
|
|
|
+ использовании с компонентами <acronym>MVC</acronym>,
|
|
|
+ <classname>Zend_Layout</classname> будет пытаться использовать объект вида,
|
|
|
+ зарегистрированный в <link linkend="zend.controller.actionhelpers.viewrenderer">
|
|
|
+ ViewRenderer</link>, если объект вида не был передан явным образом. Аксессоры -
|
|
|
+ <methodname>setView()</methodname> и <methodname>getView()</methodname>.
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <emphasis>helperClass</emphasis>: класс помощника действия, применяемый при
|
|
|
+ использовании <classname>Zend_Layout</classname> с компонентами
|
|
|
+ <acronym>MVC</acronym>. По умолчанию это
|
|
|
+ <classname>Zend_Layout_Controller_Action_Helper_Layout</classname>.
|
|
|
+ Аксессоры - <methodname>setHelperClass()</methodname> и
|
|
|
+ <methodname>getHelperClass()</methodname>.
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <emphasis>pluginClass</emphasis>: класс плагина фронт-контроллера, применяемый
|
|
|
+ при использовании
|
|
|
+ <classname>Zend_Layout</classname> с компонентами <acronym>MVC</acronym>. По
|
|
|
+ умолчанию это <classname>Zend_Layout_Controller_Plugin_Layout</classname>.
|
|
|
+ Аксессоры - <methodname>setPluginClass()</methodname> и
|
|
|
+ <methodname>getPluginClass()</methodname>.
|
|
|
+ </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>
|
|
|
+ этом читайте в <link linkend="zend.layout.advanced.inflector">документации по
|
|
|
+ инфлектору <classname>Zend_Layout</classname></link>.
|
|
|
+ Аксессоры - <methodname>setInflector()</methodname>
|
|
|
+ и <methodname>getInflector()</methodname>.
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
</itemizedlist>
|
|
|
|
|
|
<note>
|
|
|
<title>helperClass и pluginClass должны передаваться startMvc()</title>
|
|
|
|
|
|
<para>
|
|
|
- Для того чтобы установка опций <code>helperClass</code> и
|
|
|
- <code>pluginClass</code> произвела нужный эффект, эти опции должны
|
|
|
- быть переданы методу <code>startMvc()</code>. Если они
|
|
|
+ Для того чтобы установка опций <property>helperClass</property> и
|
|
|
+ <property>pluginClass</property> произвела нужный эффект, эти опции должны
|
|
|
+ быть переданы методу <methodname>startMvc()</methodname>. Если они
|
|
|
устанавливаются позже, то это не произведет нужного действия.
|
|
|
</para>
|
|
|
</note>
|
|
|
@@ -99,19 +115,19 @@
|
|
|
<title>Примеры</title>
|
|
|
|
|
|
<para>
|
|
|
- Следующие примеры предполагают наличие следующих массива опций и
|
|
|
- объекта конфигурации:
|
|
|
+ Следующие примеры предполагают наличие следующих массива опций
|
|
|
+ <varname>$options</varname> и объекта конфигурации <varname>$config</varname>:
|
|
|
</para>
|
|
|
|
|
|
- <programlisting language="php"><![CDATA[<?php
|
|
|
+ <programlisting language="php"><![CDATA[
|
|
|
$options = array(
|
|
|
'layout' => 'foo',
|
|
|
'layoutPath' => '/path/to/layouts',
|
|
|
- 'contentKey' => 'CONTENT', // игнорируется, если не используется MVC
|
|
|
+ 'contentKey' => 'CONTENT', // игнорируется, если не используется MVC
|
|
|
);
|
|
|
-?>]]></programlisting>
|
|
|
+]]></programlisting>
|
|
|
|
|
|
- <programlisting language="php"><![CDATA[<?php
|
|
|
+ <programlisting language="php"><![CDATA[
|
|
|
/**
|
|
|
[layout]
|
|
|
layout = "foo"
|
|
|
@@ -119,35 +135,35 @@ layoutPath = "/path/to/layouts"
|
|
|
contentKey = "CONTENT"
|
|
|
*/
|
|
|
$config = new Zend_Config_Ini('/path/to/layout.ini', 'layout');
|
|
|
-?>]]></programlisting>
|
|
|
+]]></programlisting>
|
|
|
|
|
|
<example id="zend.layout.options.examples.constructor">
|
|
|
<title>Передача опций конструктору или startMvc()</title>
|
|
|
|
|
|
<para>
|
|
|
- Как конструктор, так и статический метод <code>startMvc()</code>
|
|
|
- могут принимать массив опций или объект <code>Zend_Config</code>
|
|
|
+ Как конструктор, так и статический метод <methodname>startMvc()</methodname>
|
|
|
+ могут принимать массив опций или объект <classname>Zend_Config</classname>
|
|
|
с опциями для конфигурирования экземпляра
|
|
|
- <code>Zend_Layout</code>.
|
|
|
+ <classname>Zend_Layout</classname>.
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
Передача массива:
|
|
|
</para>
|
|
|
|
|
|
- <programlisting language="php"><![CDATA[<?php
|
|
|
+ <programlisting language="php"><![CDATA[
|
|
|
// Использование конструктора:
|
|
|
$layout = new Zend_Layout($options);
|
|
|
|
|
|
// Использование startMvc():
|
|
|
$layout = Zend_Layout::startMvc($options);
|
|
|
-?>]]></programlisting>
|
|
|
+]]></programlisting>
|
|
|
|
|
|
<para>
|
|
|
Использование объекта конфигурации:
|
|
|
</para>
|
|
|
|
|
|
- <programlisting language="php"><![CDATA[<?php
|
|
|
+ <programlisting language="php"><![CDATA[
|
|
|
$config = new Zend_Config_Ini('/path/to/layout.ini', 'layout');
|
|
|
|
|
|
// Использование конструктора:
|
|
|
@@ -155,11 +171,11 @@ $layout = new Zend_Layout($config);
|
|
|
|
|
|
// Использование startMvc():
|
|
|
$layout = Zend_Layout::startMvc($config);
|
|
|
-?>]]></programlisting>
|
|
|
+]]></programlisting>
|
|
|
|
|
|
<para>
|
|
|
Как правило, это наиболее легкий способ настройки экземпляра
|
|
|
- <code>Zend_Layout</code>.
|
|
|
+ <classname>Zend_Layout</classname>.
|
|
|
</para>
|
|
|
</example>
|
|
|
|
|
|
@@ -167,26 +183,26 @@ $layout = Zend_Layout::startMvc($config);
|
|
|
<title>Использование setOption() и setConfig()</title>
|
|
|
|
|
|
<para>
|
|
|
- Иногда нужно сконфигурировать объект <code>Zend_Layout</code>
|
|
|
+ Иногда нужно сконфигурировать объект <classname>Zend_Layout</classname>
|
|
|
после того, как он уже был инстанцирован. Методы
|
|
|
- <code>setOptions()</code> и <code>setConfig()</code> позволяют
|
|
|
- сделать это легко и быстро:
|
|
|
+ <methodname>setOptions()</methodname> и <methodname>setConfig()</methodname>
|
|
|
+ позволяют сделать это легко и быстро:
|
|
|
</para>
|
|
|
|
|
|
- <programlisting language="php"><![CDATA[<?php
|
|
|
+ <programlisting language="php"><![CDATA[
|
|
|
// Использование массива опций:
|
|
|
$layout->setOptions($options);
|
|
|
|
|
|
// Использование объекта Zend_Config:
|
|
|
$layout->setConfig($options);
|
|
|
-?>]]></programlisting>
|
|
|
+]]></programlisting>
|
|
|
|
|
|
<para>
|
|
|
Но следует иметь в виду, что некоторые опции, такие, как
|
|
|
- <code>pluginClass</code> и <code>helperClass</code> не будут
|
|
|
+ <property>pluginClass</property> и <property>helperClass</property> не будут
|
|
|
действовать, если были переданы с использованием этих методов,
|
|
|
их следует передавать конструктору или методу
|
|
|
- <code>startMvc()</code>.
|
|
|
+ <methodname>startMvc()</methodname>.
|
|
|
</para>
|
|
|
</example>
|
|
|
|
|
|
@@ -194,17 +210,17 @@ $layout->setConfig($options);
|
|
|
<title>Использование аксессоров</title>
|
|
|
|
|
|
<para>
|
|
|
- И наконец, вы можете конфигурировать свой экземпляр с
|
|
|
- помощью аксессоров. Все аксессоры реализуют fluent
|
|
|
- interface, это значит, что их вызовы могут следовать
|
|
|
- непосредственно друг за другом:
|
|
|
+ И наконец, вы можете конфигурировать свой экземпляр
|
|
|
+ <classname>Zend_Layout</classname> с помощью аксессоров. Все аксессоры реализуют
|
|
|
+ fluent interface, это значит, что их вызовы могут следовать непосредственно друг
|
|
|
+ за другом:
|
|
|
</para>
|
|
|
|
|
|
- <programlisting language="php"><![CDATA[<?php
|
|
|
+ <programlisting language="php"><![CDATA[
|
|
|
$layout->setLayout('foo')
|
|
|
->setLayoutPath('/path/to/layouts')
|
|
|
->setContentKey('CONTENT');
|
|
|
-?>]]></programlisting>
|
|
|
+]]></programlisting>
|
|
|
</example>
|
|
|
</sect2>
|
|
|
</sect1>
|