1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222
|
<?xml version="1.0" encoding="UTF-8"?>
<!-- EN-Revision: 24249 -->
<!-- Reviewed: no -->
<sect1 id="zend.layout.options">
<title>Zend_Layout Konfigurations Optionen</title>
<para>
<classname>Zend_Layout</classname> hat eine Variation an Konfigurations Optionen. Diese
können durch den Aufruf entsprechender Zugriffsmethoden gesetzt werden, durch die Übergabe
eines Arrays oder <classname>Zend_Config</classname> Objektes an den Konstruktor oder
<methodname>startMvc()</methodname>, durch die Übergabe eines Arrays von Optionen an
<methodname>setOptions()</methodname>, oder der Übergabe eines
<classname>Zend_Config</classname> Objektes an <methodname>setConfig()</methodname>.
</para>
<itemizedlist>
<listitem>
<para>
<emphasis>layout</emphasis>: Das Layout das verwendet werden soll. Verwendet die
aktuelle Beugung um den Namen, der dem entsprechenden Layout View Skript angegeben
wurde, aufzulösen. Standardmäßig ist dieser Wert 'layout' und wird zu 'layout.phtml'
aufgelöst. Zugriffsmethoden sind <methodname>setLayout()</methodname> und
<methodname>getLayout()</methodname>.
</para>
</listitem>
<listitem>
<para>
<emphasis>layoutPath</emphasis>: Der Basispfad zu den Layout View Skripten.
Zugriffsmethoden sind <methodname>setLayoutPath()</methodname> und
<methodname>getLayoutPath()</methodname>.
</para>
</listitem>
<listitem>
<para>
<emphasis>contentKey</emphasis>: Die Layout Variable die für Standardinhalte
verwendet wird (wenn mit dem <acronym>MVC</acronym> verwendet). Der Standardwert ist
'content'. Zugriffsmethoden sind <methodname>setContentKey()</methodname> und
<methodname>getContentKey()</methodname>.
</para>
</listitem>
<listitem>
<para>
<emphasis>mvcSuccessfulActionOnly</emphasis>: Wenn <acronym>MVC</acronym> verwendet
wird, dann wird das Layout nicht dargestellt wenn eine Aktion eine Ausnahme wirft
und dieses Flag <constant>TRUE</constant> ist (das wird verwendet um zu verhindern
dass das Layout doppelt dargestellt wird wenn das <link
linkend="zend.controller.plugins.standard.errorhandler">ErrorHandler
Plugin</link> verwendet wird. Standardmäßig ist dieses Flag
<constant>TRUE</constant>. Zugriffsmethoden sind
<methodname>setMvcSuccessfulActionOnly()</methodname> und
<methodname>getMvcSuccessfulActionOnly()</methodname>.
</para>
</listitem>
<listitem>
<para>
<emphasis>view</emphasis>: Das View Objekt das für die Darstellung verwendet wird.
Wenn mit <acronym>MVC</acronym> verwendet, dann versucht
<classname>Zend_Layout</classname> das View Objekt zu verwenden das mit <link
linkend="zend.controller.actionhelpers.viewrenderer">dem ViewRenderer</link>
registriert wurde wenn kein explizites View Objekt übergeben wurde. Zugriffsmethoden
sind <methodname>setView()</methodname> und <methodname>getView()</methodname>.
</para>
</listitem>
<listitem>
<para>
<emphasis>helperClass</emphasis>: Die Action Helfer Klasse die verwendet wird wenn
<classname>Zend_Layout</classname> mit den <acronym>MVC</acronym> Komponenten
verwendet wird. Standardmäßig ist das
<classname>Zend_Layout_Controller_Action_Helper_Layout</classname>. Zugriffsmethoden
sind <methodname>setHelperClass()</methodname> und
<methodname>getHelperClass()</methodname>.
</para>
</listitem>
<listitem>
<para>
<emphasis>pluginClass</emphasis>: Das Front Controller Plugin das verwendet wird
wenn <classname>Zend_Layout</classname> mit den <acronym>MVC</acronym> Komponenten
verwendet wird. Standardmäßig ist das
<classname>Zend_Layout_Controller_Plugin_Layout</classname>. Zugriffsmethoden sind
<methodname>setPluginClass()</methodname> und
<methodname>getPluginClass()</methodname>.
</para>
</listitem>
<listitem>
<para>
<emphasis>inflector</emphasis>: Die Beugung die verwendet werden soll wenn Layout
Namen zu Layout Skript Pfaden aufgelöst werden; siehe <link
linkend="zend.layout.advanced.inflector">die <classname>Zend_Layout</classname>
Beugungs Dokumentation für weitere Details</link>. Zugriffsmethoden sind
<methodname>setInflector()</methodname> und <methodname>getInflector()</methodname>.
</para>
</listitem>
</itemizedlist>
<note>
<title>HelferKlasse und PluginKlasse müssen an startMvc() übergeben werden</title>
<para>
Damit die <property>helperClass</property> und <property>pluginClass</property>
Einstellungen wirken, müssen diese als Option an <methodname>startMvc()</methodname>
übergeben werden; wenn sie später gesetzt werden, haben Sie keinen Effekt.
</para>
</note>
<sect2 id="zend.layout.options.examples">
<title>Beispiele</title>
<para>
Die folgenden Beispiele nehmen das folgende <varname>$options</varname> Array und
<varname>$config</varname> Objekt an:
</para>
<programlisting language="php"><![CDATA[
$options = array(
'layout' => 'foo',
'layoutPath' => '/path/to/layouts',
'contentKey' => 'CONTENT', // Ignoriert wenn MVC nicht verwendet wird
);
]]></programlisting>
<programlisting language="php"><![CDATA[
/**
[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>Optionen an den Konstruktor oder startMvc() übergeben</title>
<para>
Beide, der Konstruktor und die statische <methodname>startMvc()</methodname> Methode
akzeptieren entweder ein Array von Optionen oder ein
<classname>Zend_Config</classname> Objekt mit Optionen um die
<classname>Zend_Layout</classname> Instanz zu konfigurieren.
</para>
<para>
Zuerst zeigen wir die Übergabe eines Arrays:
</para>
<programlisting language="php"><![CDATA[
// Konstruktor verwenden:
$layout = new Zend_Layout($options);
// startMvc() verwenden:
$layout = Zend_Layout::startMvc($options);
]]></programlisting>
<para>
Und jetzt die Verwendung eines Config Objekts:
</para>
<programlisting language="php"><![CDATA[
$config = new Zend_Config_Ini('/path/to/layout.ini', 'layout');
// Konstruktor verwenden:
$layout = new Zend_Layout($config);
// startMvc() verwenden:
$layout = Zend_Layout::startMvc($config);
]]></programlisting>
<para>
Grundsätzlich ist das der einfachste Weg um die <classname>Zend_Layout</classname>
Instanz anzupassen.
</para>
</example>
<example id="zend.layout.options.examples.setoptionsconfig">
<title>setOption() und setConfig() verwenden</title>
<para>
Machmal ist es notwendig das <classname>Zend_Layout</classname> Objekt zu
Konfigurieren nachdem es instanziiert wurde; <methodname>setOptions()</methodname>
und <methodname>setConfig()</methodname> bieten einen schnellen und einfachen Weg
das zu tun:
</para>
<programlisting language="php"><![CDATA[
// Ein Array von Optionen verwenden:
$layout->setOptions($options);
// Ein Zend_Config Objekt verwenden:
$layout->setConfig($options);
]]></programlisting>
<para>
Es ist zu beachten das einige Optionen, wie <property>pluginClass</property> und
<property>helperClass</property>, keinen Effekt haven wenn Sie mit Hilfe dieser
Methode übergeben werden; sie müssen mit dem Konstruktor oder der
<methodname>startMvc()</methodname> Methode übergeben werden.
</para>
</example>
<example id="zend.layout.options.examples.accessors">
<title>Zugriffsmethoden verwenden</title>
<para>
Letztendlich kann die <classname>Zend_Layout</classname> Instanz auch über
Zugriffsmetoden konfiguriert werden. Alle Zugriffsmethoden implementieren ein
Flüssiges Interface, was bedeutet das Ihre Aufrufe gekettet werden können:
</para>
<programlisting language="php"><![CDATA[
$layout->setLayout('foo')
->setLayoutPath('/path/to/layouts')
->setContentKey('CONTENT');
]]></programlisting>
</example>
</sect2>
</sect1>
|