|
|
@@ -1,5 +1,5 @@
|
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
|
-<!-- EN-Revision: 15719 -->
|
|
|
+<!-- EN-Revision: 16162 -->
|
|
|
<!-- Reviewed: no -->
|
|
|
<sect3 id="zend.controller.actionhelpers.viewrenderer">
|
|
|
<title>ViewRenderer</title>
|
|
|
@@ -8,7 +8,8 @@
|
|
|
<title>Einführung</title>
|
|
|
|
|
|
<para>
|
|
|
- Der <code>ViewRenderer</code> Helfer wurde designt um die folgenden Ziele erfüllen:
|
|
|
+ Der <emphasis>ViewRenderer</emphasis> Helfer wurde designt um die folgenden Ziele
|
|
|
+ erfüllen:
|
|
|
</para>
|
|
|
|
|
|
<itemizedlist>
|
|
|
@@ -58,20 +59,21 @@
|
|
|
|
|
|
<note>
|
|
|
<para>
|
|
|
- Wenn man ein <code>_forward()</code>, eine Umleitung, oder ein <code>render</code>
|
|
|
- manuell durchführt, wird kein automatisches rendern erfolgen, da man beim Ausführen
|
|
|
- von jeder dieser Aktionen dem <code>ViewRenderer</code> mitteilt das man seine
|
|
|
- eigene Ausgabe durchführen will.
|
|
|
+ Wenn man ein <methodname>_forward()</methodname>, eine Umleitung, oder ein
|
|
|
+ <code>render</code> manuell durchführt, wird kein automatisches rendern erfolgen,
|
|
|
+ da man beim Ausführen von jeder dieser Aktionen dem
|
|
|
+ <emphasis>ViewRenderer</emphasis> mitteilt das man seine eigene Ausgabe durchführen
|
|
|
+ will.
|
|
|
</para>
|
|
|
</note>
|
|
|
|
|
|
<note>
|
|
|
<para>
|
|
|
- Der <code>ViewRenderer</code> ist standardmäßig aktiviert. Man kann Ihn über den
|
|
|
- Parameter <code>noViewRenderer</code> des Frontkontrollers deaktivieren
|
|
|
- (<code>$front->setParam('noViewRenderer', true)</code>) oder den Helfer vom Helfer
|
|
|
- Broker Stack entfernen
|
|
|
- (<classname>Zend_Controller_Action_HelperBroker::removeHelper('viewRenderer')</classname>).
|
|
|
+ Der <emphasis>ViewRenderer</emphasis> ist standardmäßig aktiviert. Man kann Ihn
|
|
|
+ über den Parameter <code>noViewRenderer</code> des Frontkontrollers deaktivieren
|
|
|
+ (<methodname>$front->setParam('noViewRenderer', true)</methodname>) oder den Helfer
|
|
|
+ vom Helfer Broker Stack entfernen
|
|
|
+ (<methodname>Zend_Controller_Action_HelperBroker::removeHelper('viewRenderer')</methodname>).
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
@@ -82,8 +84,9 @@
|
|
|
<itemizedlist>
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- Instanzieren und Registrieren eines eigenen <code>ViewRenderer</code>
|
|
|
- Objekts und dieses an den Helfer Broker übergeben:
|
|
|
+ Instanzieren und Registrieren eines eigenen
|
|
|
+ <emphasis>ViewRenderer</emphasis> Objekts und dieses an den Helfer Broker
|
|
|
+ übergeben:
|
|
|
</para>
|
|
|
|
|
|
<programlisting language="php"><![CDATA[
|
|
|
@@ -96,8 +99,8 @@ Zend_Controller_Action_HelperBroker::addHelper($viewRenderer);
|
|
|
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- Initialisieren und/oder empfangen eines <code>ViewRenderer</code> Objekts
|
|
|
- auf Wunsch über den Helfer Broker:
|
|
|
+ Initialisieren und/oder empfangen eines <emphasis>ViewRenderer</emphasis>
|
|
|
+ Objekts auf Wunsch über den Helfer Broker:
|
|
|
</para>
|
|
|
|
|
|
<programlisting language="php"><![CDATA[
|
|
|
@@ -115,10 +118,10 @@ $viewRenderer->setView($view)
|
|
|
<title>API</title>
|
|
|
|
|
|
<para>
|
|
|
- In seiner einfachsten Verwendung, kann der <code>ViewRenderer</code> ganz einfach
|
|
|
- instanziert und an den Aktion Helfer Broker übergeben werden. Der einfachste Weg Ihn auf
|
|
|
- einmal zu Instanzieren und Registrieren ist es, die Methode
|
|
|
- <code>getStaticHelper()</code> des Helfer Brokers zu verwenden:
|
|
|
+ In seiner einfachsten Verwendung, kann der <emphasis>ViewRenderer</emphasis> ganz
|
|
|
+ einfach instanziert und an den Aktion Helfer Broker übergeben werden. Der einfachste
|
|
|
+ Weg Ihn auf einmal zu Instanzieren und Registrieren ist es, die Methode
|
|
|
+ <methodname>getStaticHelper()</methodname> des Helfer Brokers zu verwenden:
|
|
|
</para>
|
|
|
|
|
|
<programlisting language="php"><![CDATA[
|
|
|
@@ -127,18 +130,18 @@ Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
|
|
|
|
|
|
<para>
|
|
|
Das erste Mal wenn ein Aktion Kontroller instanziert wird, triggert er den
|
|
|
- <code>ViewRenderer</code> ein View Objekt zu instanzieren. Jedes Mal wen ein Kontroller
|
|
|
- Instanziert wird, wird die <code>init()</code> Methode des <code>ViewRenderer</code>'s
|
|
|
- aufgerufen, was dazu führt das er die view Eigenschaft des Aktion Kontrollers setzt, und
|
|
|
- <code>addScriptPath()</code>, mit einem Pfad relativ zum aktuellen Modul, aufruft; das
|
|
|
- wird mit einem Klassenprefix aufgerufen der nach dem aktuellen Modul benannt ist, was
|
|
|
- effektiv für alle Helfer und Filterklassen die im Modul definiert werden den Namensraum
|
|
|
- setzt.
|
|
|
+ <emphasis>ViewRenderer</emphasis> ein View Objekt zu instanzieren. Jedes Mal wenn ein
|
|
|
+ Kontroller Instanziert wird, wird die <methodname>init()</methodname> Methode des
|
|
|
+ <emphasis>ViewRenderer</emphasis>'s aufgerufen, was dazu führt das er die view
|
|
|
+ Eigenschaft des Aktion Kontrollers setzt, und <methodname>addScriptPath()</methodname>,
|
|
|
+ mit einem Pfad relativ zum aktuellen Modul, aufruft; das wird mit einem Klassenprefix
|
|
|
+ aufgerufen der nach dem aktuellen Modul benannt ist, was effektiv für alle Helfer und
|
|
|
+ Filterklassen die im Modul definiert werden den Namensraum setzt.
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
- Jedes Mal wenn <code>postDispatch()</code> aufgerufen wird, ruft dieses
|
|
|
- <code>render()</code> für die aktuelle Aktion auf.
|
|
|
+ Jedes Mal wenn <methodname>postDispatch()</methodname> aufgerufen wird, ruft dieses
|
|
|
+ <methodname>render()</methodname> für die aktuelle Aktion auf.
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
@@ -170,99 +173,103 @@ $this->foo(); // Foo_View_Helper_Foo::foo() aufrufen
|
|
|
]]></programlisting>
|
|
|
|
|
|
<para>
|
|
|
- Der <code>ViewRenderer</code> definiert auch eine Anzahl von Zugriffspunkten im das
|
|
|
- Setzen und Empfangen von View Optionen zu erlauben:
|
|
|
+ Der <emphasis>ViewRenderer</emphasis> definiert auch eine Anzahl von Zugriffspunkten
|
|
|
+ um das Setzen und Empfangen von View Optionen zu erlauben:
|
|
|
</para>
|
|
|
|
|
|
<itemizedlist>
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- <code>setView($view)</code> erlaubt das Setzen des View Objektes für den
|
|
|
- <code>ViewRenderer</code>. Er wird als öffentliche Klasseneigenschaft
|
|
|
- <varname>$view</varname> gesetzt.
|
|
|
+ <methodname>setView($view)</methodname> erlaubt das Setzen des View Objektes
|
|
|
+ für den <emphasis>ViewRenderer</emphasis>. Er wird als öffentliche
|
|
|
+ Klasseneigenschaft <varname>$view</varname> gesetzt.
|
|
|
</para>
|
|
|
</listitem>
|
|
|
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- <code>setNeverRender($flag = true)</code> kann verwendet werden um das
|
|
|
- automatische rendern global ein- oder auszuschalten, z.B. für alle Kontroller.
|
|
|
- Wenn er auf true gesetzt wird, ruft <code>postDispatch()</code> nicht
|
|
|
- automatisch <code>render()</code> im aktuellen Kontroller auf.
|
|
|
- <code>getNeverRender()</code> empfängt den aktuellen Wert.
|
|
|
+ <methodname>setNeverRender($flag = true)</methodname> kann verwendet werden um
|
|
|
+ das automatische rendern global ein- oder auszuschalten, z.B. für alle
|
|
|
+ Kontroller. Wenn er auf true gesetzt wird, ruft
|
|
|
+ <methodname>postDispatch()</methodname> nicht automatisch
|
|
|
+ <methodname>render()</methodname> im aktuellen Kontroller auf.
|
|
|
+ <methodname>getNeverRender()</methodname> empfängt den aktuellen Wert.
|
|
|
</para>
|
|
|
</listitem>
|
|
|
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- <code>setNoRender($flag = true)</code> kann verwendet werden um das automatische
|
|
|
- rendern ein- oder auszuschalten. Wenn er auf true gesetzt wird, wird
|
|
|
- <code>postDispatch()</code> <code>render()</code> im aktuellen Kontroller nicht
|
|
|
- automatisch aufrufen. Diese Einstellung wird jedesmal zurückgesetzt wenn
|
|
|
- <code>preDispatch()</code> aufgerufen wird (z.B. muß dieses Flag für jeden
|
|
|
- Kontroller gesetzt werden für den das automatische rendern nicht automatisch
|
|
|
- stattfinden soll). <code>getNoRender()</code> empfängt den aktuellen Wert.
|
|
|
+ <methodname>setNoRender($flag = true)</methodname> kann verwendet werden um das
|
|
|
+ automatische rendern ein- oder auszuschalten. Wenn er auf true gesetzt wird,
|
|
|
+ wird <methodname>postDispatch()</methodname> <methodname>render()</methodname>
|
|
|
+ im aktuellen Kontroller nicht automatisch aufrufen. Diese Einstellung wird
|
|
|
+ jedesmal zurückgesetzt wenn <methodname>preDispatch()</methodname> aufgerufen
|
|
|
+ wird (z.B. muß dieses Flag für jeden Kontroller gesetzt werden für den das
|
|
|
+ automatische rendern nicht automatisch stattfinden soll).
|
|
|
+ <methodname>getNoRender()</methodname> empfängt den aktuellen Wert.
|
|
|
</para>
|
|
|
</listitem>
|
|
|
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- <code>setNoController($flag = true)</code> kann verwendet werden um
|
|
|
- <code>render()</code> zu sagen das für Aktion Skripts nicht in einem
|
|
|
- Unterverzeichnis gesucht werden soll das nach dem Kontroller benannt ist (was
|
|
|
- das Standardverhalten ist). <code>getNoController()</code> empfängt den
|
|
|
- aktuellen Wert.
|
|
|
+ <methodname>setNoController($flag = true)</methodname> kann verwendet werden um
|
|
|
+ <methodname>render()</methodname> zu sagen das für Aktion Skripts nicht in
|
|
|
+ einem Unterverzeichnis gesucht werden soll das nach dem Kontroller benannt ist
|
|
|
+ (was das Standardverhalten ist). <methodname>getNoController()</methodname>
|
|
|
+ empfängt den aktuellen Wert.
|
|
|
</para>
|
|
|
</listitem>
|
|
|
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- <code>setNeverController($flag = true)</code> ist analog zu
|
|
|
- <code>setNoController()</code>, arbeitet aber auf einem globalen Leven -- z.B.
|
|
|
- wird es nicht für jede ausgeführte Aktion resetiert.
|
|
|
- <code>getNeverController()</code> empfängt den aktuellen Wert.
|
|
|
+ <methodname>setNeverController($flag = true)</methodname> ist analog zu
|
|
|
+ <methodname>setNoController()</methodname>, arbeitet aber auf einem globalen
|
|
|
+ Leven -- z.B. wird es nicht für jede ausgeführte Aktion resetiert.
|
|
|
+ <methodname>getNeverController()</methodname> empfängt den aktuellen Wert.
|
|
|
</para>
|
|
|
</listitem>
|
|
|
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- <code>setScriptAction($name)</code> kann verwendet werden um das Aktion Skript
|
|
|
- zu spezifizieren das gerendert werden soll. <varname>$name</varname> sollte der
|
|
|
- Name des Skripts sein, ohne den Datei Suffix (und ohne das Kontroller
|
|
|
- Unterverzeichnis, ausser wenn <code>noController</code> eingeschaltet wurde).
|
|
|
- Wenn nicht spezifiziert, wird nach einem View Skript gesucht das nach der Aktion
|
|
|
- in Anfrage Objekt benannt ist. <code>getScriptAction()</code> empfängt den
|
|
|
- aktuellen Wert.
|
|
|
+ <methodname>setScriptAction($name)</methodname> kann verwendet werden um das
|
|
|
+ Aktion Skript zu spezifizieren das gerendert werden soll.
|
|
|
+ <varname>$name</varname> sollte der Name des Skripts sein, ohne den Datei
|
|
|
+ Suffix (und ohne das Kontroller Unterverzeichnis, ausser wenn
|
|
|
+ <code>noController</code> eingeschaltet wurde). Wenn nicht spezifiziert, wird
|
|
|
+ nach einem View Skript gesucht das nach der Aktion in Anfrage Objekt benannt
|
|
|
+ ist. <methodname>getScriptAction()</methodname> empfängt den aktuellen Wert.
|
|
|
</para>
|
|
|
</listitem>
|
|
|
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- <code>setResponseSegment($name)</code> kann verwendet werden um zu spezifizieren
|
|
|
- in welches Segment das nach einem Antwort Objekt benannt ist, gerendert werden
|
|
|
- soll. Wenn nicht spezifiziert, wird in das Standard Segment gerendert.
|
|
|
- <code>getResponseSegment()</code> empfängt den aktuellen Wert.
|
|
|
+ <methodname>setResponseSegment($name)</methodname> kann verwendet werden um zu
|
|
|
+ spezifizieren in welches Segment das nach einem Antwort Objekt benannt ist,
|
|
|
+ gerendert werden soll. Wenn nicht spezifiziert, wird in das Standard Segment
|
|
|
+ gerendert. <methodname>getResponseSegment()</methodname> empfängt den aktuellen
|
|
|
+ Wert.
|
|
|
</para>
|
|
|
</listitem>
|
|
|
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- <code>initView($path, $prefix, $options)</code> kann aufgerufen werden um den
|
|
|
- Basis View Pfad, den Klassenprefix für Helfer, Filter Skripts und
|
|
|
- <code>ViewRenderer</code> Optionen zu spezifizieren. Es kann eines der folgenden
|
|
|
- Flags übergeben werden: <code>neverRender</code>, <code>noRender</code>,
|
|
|
- <code>noController</code>, <code>scriptAction</code>, und
|
|
|
- <code>responseSegment</code>.
|
|
|
+ <methodname>initView($path, $prefix, $options)</methodname> kann aufgerufen
|
|
|
+ werden um den Basis View Pfad, den Klassenprefix für Helfer, Filter Skripts und
|
|
|
+ <emphasis>ViewRenderer</emphasis> Optionen zu spezifizieren. Es kann eines der
|
|
|
+ folgenden Flags übergeben werden: <code>neverRender</code>,
|
|
|
+ <code>noRender</code>, <code>noController</code>, <code>scriptAction</code>,
|
|
|
+ und <code>responseSegment</code>.
|
|
|
</para>
|
|
|
</listitem>
|
|
|
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- <code>setRender($action = null, $name = null, $noController = false)</code>
|
|
|
- erlaubt es <code>scriptAction</code>, <code>responseSegment</code>, oder
|
|
|
- <code>noController</code> in einem Schritt zu übergeben. <code>direct()</code>
|
|
|
- ist ein Alias für diese Methode, und erlaubt es diese Methode einfach vom
|
|
|
- eigenen Kontroller aus aufzurufen:
|
|
|
+ <methodname>setRender($action = null, $name = null, $noController =
|
|
|
+ false)</methodname> erlaubt es <code>scriptAction</code>,
|
|
|
+ <code>responseSegment</code>, oder <code>noController</code> in einem Schritt
|
|
|
+ zu übergeben. <methodname>direct()</methodname> ist ein Alias für diese
|
|
|
+ Methode, und erlaubt es diese Methode einfach vom eigenen Kontroller aus
|
|
|
+ aufzurufen:
|
|
|
</para>
|
|
|
|
|
|
<programlisting language="php"><![CDATA[
|
|
|
@@ -275,16 +282,19 @@ $this->_helper->viewRenderer('form', 'html', true);
|
|
|
]]></programlisting>
|
|
|
|
|
|
<note><para>
|
|
|
- <code>setRender()</code> und <code>direct()</code> stellen das View Sktript
|
|
|
- nicht dar, sondern setzen Hinweise die <code>postDispatch()</code> und
|
|
|
- <code>render()</code> dann verwenden wenn die View dargestellt wird.
|
|
|
+ <methodname>setRender()</methodname> und <methodname>direct()</methodname>
|
|
|
+ stellen das View Sktript nicht dar, sondern setzen Hinweise die
|
|
|
+ <methodname>postDispatch()</methodname> und
|
|
|
+ <methodname>render()</methodname> dann verwenden wenn die View dargestellt
|
|
|
+ wird.
|
|
|
</para></note>
|
|
|
</listitem>
|
|
|
</itemizedlist>
|
|
|
|
|
|
<para>
|
|
|
- Der Constructor erlaubt es optional das View Objekt und <code>ViewRenderer</code>
|
|
|
- Optionen zu übergeben; er akzeptiert die gleichen Flags wie <code>initView()</code>:
|
|
|
+ Der Constructor erlaubt es optional das View Objekt und
|
|
|
+ <emphasis>ViewRenderer</emphasis> Optionen zu übergeben; er akzeptiert die gleichen
|
|
|
+ Flags wie <methodname>initView()</methodname>:
|
|
|
</para>
|
|
|
|
|
|
<programlisting language="php"><![CDATA[
|
|
|
@@ -305,33 +315,34 @@ $viewRenderer =
|
|
|
<itemizedlist>
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- <code>:moduleDir</code> zeigt auf das aktuelle Modul Basisverzeichnis (von der
|
|
|
- Konvention her das Elternverzeicnis des Kontroller Verzeichnisses des Moduls).
|
|
|
+ <emphasis>:moduleDir</emphasis> zeigt auf das aktuelle Modul Basisverzeichnis
|
|
|
+ (von der Konvention her das Elternverzeicnis des Kontroller Verzeichnisses des
|
|
|
+ Moduls).
|
|
|
</para>
|
|
|
</listitem>
|
|
|
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- <code>:module</code> zeigt auf den aktuellen Modulnamen.
|
|
|
+ <emphasis>:module</emphasis> zeigt auf den aktuellen Modulnamen.
|
|
|
</para>
|
|
|
</listitem>
|
|
|
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- <code>:controller</code> zeigt auf den aktuellen Kontrollernamen.
|
|
|
+ <emphasis>:controller</emphasis> zeigt auf den aktuellen Kontrollernamen.
|
|
|
</para>
|
|
|
</listitem>
|
|
|
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- <code>:action</code> zeigt auf den aktuellen Aktionsnamen.
|
|
|
+ <emphasis>:action</emphasis> zeigt auf den aktuellen Aktionsnamen.
|
|
|
</para>
|
|
|
</listitem>
|
|
|
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- <code>:suffix</code> zeigt auf das aktuelle Suffix des View Skripts (welcher
|
|
|
- über <code>setViewSuffix()</code> gesetzt werden kann).
|
|
|
+ <emphasis>:suffix</emphasis> zeigt auf das aktuelle Suffix des View Skripts
|
|
|
+ (welcher über <methodname>setViewSuffix()</methodname> gesetzt werden kann).
|
|
|
</para>
|
|
|
</listitem>
|
|
|
</itemizedlist>
|
|
|
@@ -343,33 +354,35 @@ $viewRenderer =
|
|
|
<itemizedlist>
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- <code>setViewBasePathSpec($spec)</code> erlaubt die Änderung der Pfad
|
|
|
- Spezifikation die verwendet wird um den Basispfad herauszufinden zu dem das
|
|
|
- View Objekt hinzugefügt werden soll. Die Standardspezifikation ist
|
|
|
+ <methodname>setViewBasePathSpec($spec)</methodname> erlaubt die Änderung der
|
|
|
+ Pfad Spezifikation die verwendet wird um den Basispfad herauszufinden zu dem
|
|
|
+ das View Objekt hinzugefügt werden soll. Die Standardspezifikation ist
|
|
|
<code>:moduleDir/views</code>. Die aktuelle Spezifikation kann jederzeit
|
|
|
- durch Verwenden von <code>getViewBasePathSpec()</code> erhalten werden.
|
|
|
+ durch Verwenden von <methodname>getViewBasePathSpec()</methodname> erhalten
|
|
|
+ werden.
|
|
|
</para>
|
|
|
</listitem>
|
|
|
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- <code>setViewScriptPathSpec($spec)</code> erlaubt die Änderung der Pfad
|
|
|
- Spezifikation die verwendet wird um den Pfad zu einem individuellen View Skript
|
|
|
- herauszufinden (ohne den Basis View Skript Pfad). Die Standard Spezifikation ist
|
|
|
- <code>:controller/:action.:suffix</code>. Die aktuelle Spezifikation kann
|
|
|
- jederzeit durch Verwenden von <code>getViewScriptPathSpec()</code> erhalten
|
|
|
- werden.
|
|
|
+ <methodname>setViewScriptPathSpec($spec)</methodname> erlaubt die Änderung der
|
|
|
+ Pfad Spezifikation die verwendet wird um den Pfad zu einem individuellen View
|
|
|
+ Skript herauszufinden (ohne den Basis View Skript Pfad). Die Standard
|
|
|
+ Spezifikation ist <code>:controller/:action.:suffix</code>. Die aktuelle
|
|
|
+ Spezifikation kann jederzeit durch Verwenden von
|
|
|
+ <methodname>getViewScriptPathSpec()</methodname> erhalten werden.
|
|
|
</para>
|
|
|
</listitem>
|
|
|
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- <code>setViewScriptPathNoControllerSpec($spec)</code> erlaubt die Änderung der
|
|
|
- Pfad Spezifkiation die verwendet wird um den Pfad zu einem individuellen View
|
|
|
- Skript herauszufinden wenn <code>noController</code> aktiv ist (ohne den Basis
|
|
|
- View Skript Pfad). Die Standard Spezifikation ist <code>:action.:suffix</code>.
|
|
|
- Die aktuelle Spezikifation kann jederzeit durch Verwenden von
|
|
|
- <code>getViewScriptPathNoControllerSpec()</code> erhalten werden.
|
|
|
+ <methodname>setViewScriptPathNoControllerSpec($spec)</methodname> erlaubt die
|
|
|
+ Änderung der Pfad Spezifkiation die verwendet wird um den Pfad zu einem
|
|
|
+ individuellen View Skript herauszufinden wenn <code>noController</code> aktiv
|
|
|
+ ist (ohne den Basis View Skript Pfad). Die Standard Spezifikation ist
|
|
|
+ <code>:action.:suffix</code>. Die aktuelle Spezikifation kann jederzeit durch
|
|
|
+ Verwenden von <methodname>getViewScriptPathNoControllerSpec()</methodname>
|
|
|
+ erhalten werden.
|
|
|
</para>
|
|
|
</listitem>
|
|
|
</itemizedlist>
|
|
|
@@ -377,34 +390,35 @@ $viewRenderer =
|
|
|
<para>
|
|
|
Für eine feinkörnige Kontrolle über Pfadspezifikationen kann
|
|
|
<link linkend="zend.filter.inflector">Zend_Filter_Inflector</link> verwendet werden.
|
|
|
- Im Hintergrund verwendet der <code>ViewRenderer</code> einen Inflector um bereits
|
|
|
- Abstimmungen am Pfad durchzuführen. Um auf dem Inflector einzuwirken, damit entweder
|
|
|
- ein eigener für die Verwendung gesetzt wird, oder um den Standard Inflector zu
|
|
|
+ Im Hintergrund verwendet der <emphasis>ViewRenderer</emphasis> einen Inflector um
|
|
|
+ bereits Abstimmungen am Pfad durchzuführen. Um auf dem Inflector einzuwirken, damit
|
|
|
+ entweder ein eigener für die Verwendung gesetzt wird, oder um den Standard Inflector zu
|
|
|
verändern, können die folgenden Methoden verwendet werden:
|
|
|
</para>
|
|
|
|
|
|
<itemizedlist>
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- <code>getInflector()</code> empfängt den Inflector. Wenn bis dahin keiner im
|
|
|
- <code>ViewRenderer</code> existiert, wird dieser, anhand der Verwendung der
|
|
|
- Standard Regeln, erstellt.
|
|
|
+ <methodname>getInflector()</methodname> empfängt den Inflector. Wenn bis dahin
|
|
|
+ keiner im <emphasis>ViewRenderer</emphasis> existiert, wird dieser, anhand der
|
|
|
+ Verwendung der Standard Regeln, erstellt.
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
Standardmäßig verwendet dieser statische Referenzregeln für das Suffix und
|
|
|
Modulverzeichnis, sowie ein statisches Ziel; das erlaubt verschiedenen
|
|
|
- <code>ViewRenderer</code> Eigenschaften den Inflector dynamisch zu ändern.
|
|
|
+ <emphasis>ViewRenderer</emphasis> Eigenschaften den Inflector dynamisch zu
|
|
|
+ ändern.
|
|
|
</para>
|
|
|
</listitem>
|
|
|
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- <code>setInflector($inflector, $reference)</code> erlaubt das Setzen eines
|
|
|
- eigenen Inflectors für die Verwendung mit dem <code>ViewRenderer</code>. Wenn
|
|
|
- <varname>$reference</varname> true ist, setzt dieser das Suffix und
|
|
|
- Modulverzeichnis als statische Referenz zu <code>ViewRenderer</code>
|
|
|
- Eigenschaften, genauso wie das Ziel.
|
|
|
+ <methodname>setInflector($inflector, $reference)</methodname> erlaubt das
|
|
|
+ Setzen eines eigenen Inflectors für die Verwendung mit dem
|
|
|
+ <emphasis>ViewRenderer</emphasis>. Wenn <varname>$reference</varname> true ist,
|
|
|
+ setzt dieser das Suffix und Modulverzeichnis als statische Referenz zu
|
|
|
+ <emphasis>ViewRenderer</emphasis> Eigenschaften, genauso wie das Ziel.
|
|
|
</para>
|
|
|
</listitem>
|
|
|
</itemizedlist>
|
|
|
@@ -413,14 +427,15 @@ $viewRenderer =
|
|
|
<title>Standard Konventionen für das Eruieren</title>
|
|
|
|
|
|
<para>
|
|
|
- Der <code>ViewRenderer</code> führt einige Pfad Normalisierungen durch um das
|
|
|
- Eruieren von View Skripten einfacher zu machen. Die Standardregeln sind wie folgt:
|
|
|
+ Der <emphasis>ViewRenderer</emphasis> führt einige Pfad Normalisierungen durch um
|
|
|
+ das Eruieren von View Skripten einfacher zu machen. Die Standardregeln sind wie
|
|
|
+ folgt:
|
|
|
</para>
|
|
|
|
|
|
<itemizedlist>
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- <code>:module</code>: MixedCase und camelCaseWörter werden durch
|
|
|
+ <emphasis>:module</emphasis>: MixedCase und camelCaseWörter werden durch
|
|
|
Bindestriche getrennt, und der komplette String wird auf
|
|
|
Kleinschreibung geändert. z.B.: "FooBarBaz" wird "foo-bar-baz".
|
|
|
</para>
|
|
|
@@ -434,10 +449,11 @@ $viewRenderer =
|
|
|
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- <code>:controller</code>: MixedCase und camelCaseWörter werden durch
|
|
|
- Bindestriche getrennt; Unterstriche werden in Verzeichnistrennzeichen
|
|
|
- konvertiert, und der komplette String wird auf Kleinschreibung geändert.
|
|
|
- Beispiele: "FooBar" wird "foo-bar"; "FooBar_Admin" wird "foo-bar/admin".
|
|
|
+ <emphasis>:controller</emphasis>: MixedCase und camelCaseWörter werden
|
|
|
+ durch Bindestriche getrennt; Unterstriche werden in
|
|
|
+ Verzeichnistrennzeichen konvertiert, und der komplette String wird auf
|
|
|
+ Kleinschreibung geändert. Beispiele: "FooBar" wird "foo-bar";
|
|
|
+ "FooBar_Admin" wird "foo-bar/admin".
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
@@ -450,7 +466,7 @@ $viewRenderer =
|
|
|
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- <code>:action</code>: MixedCase und camelCaseWörter werden durch
|
|
|
+ <emphasis>:action</emphasis>: MixedCase und camelCaseWörter werden durch
|
|
|
Bindestriche getrennt; nicht-anphanummerische Zeichen werden zu
|
|
|
Bindestrichen übersetzt, und der komplette String wird auf
|
|
|
Kleinschreibung geändert. Beispiele: "fooBar" wird "foo-bar"; "foo-barBaz"
|
|
|
@@ -468,18 +484,20 @@ $viewRenderer =
|
|
|
</note>
|
|
|
|
|
|
<para>
|
|
|
- Die letzten Teile in der <code>ViewRenderer</code> API sind die Methoden für das
|
|
|
- aktuelle herausfinden von View Skript Pfaden und Rendern von Views. Diese beinhalten:
|
|
|
+ Die letzten Teile in der <emphasis>ViewRenderer</emphasis> API sind die Methoden für
|
|
|
+ das aktuelle herausfinden von View Skript Pfaden und Rendern von Views. Diese
|
|
|
+ enthalten:
|
|
|
</para>
|
|
|
|
|
|
<itemizedlist>
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- <code>renderScript($script, $name)</code> erlaubt es ein Skript mit einem selbst
|
|
|
- spezifizierten Pfad zu rendern, optional zu einem benannten Pfad Segment. Wenn
|
|
|
- diese Methode verwendet wird, ermittelt der <code>ViewRenderer</code> nicht
|
|
|
- automatisch den Skriptnamen sondern übergibt das <varname>$script</varname>
|
|
|
- Argument direkt der <code>render()</code> Methode des View Objekts.
|
|
|
+ <methodname>renderScript($script, $name)</methodname> erlaubt es ein Skript mit
|
|
|
+ einem selbst spezifizierten Pfad zu rendern, optional zu einem benannten Pfad
|
|
|
+ Segment. Wenn diese Methode verwendet wird, ermittelt der
|
|
|
+ <emphasis>ViewRenderer</emphasis> nicht automatisch den Skriptnamen sondern
|
|
|
+ übergibt das <varname>$script</varname> Argument direkt der
|
|
|
+ <methodname>render()</methodname> Methode des View Objekts.
|
|
|
</para>
|
|
|
|
|
|
<note><para>
|
|
|
@@ -492,24 +510,27 @@ $viewRenderer =
|
|
|
<para>
|
|
|
Standardmäßig handelt
|
|
|
<classname>Zend_Controller_Action::renderScript()</classname> in Vertretung
|
|
|
- zur <code>renderScript()</code> Methode des <code>ViewRenderer</code>'s.
|
|
|
+ zur <methodname>renderScript()</methodname> Methode des
|
|
|
+ <emphasis>ViewRenderer</emphasis>'s.
|
|
|
</para>
|
|
|
</note>
|
|
|
</listitem>
|
|
|
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- <code>getViewScript($action, $vars)</code> erstellt den Pfad zu einem View
|
|
|
- Skript das auf einer Aktion basiert die übergeben wird, und/oder allen Variablen
|
|
|
- die in <varname>$vars</varname> übergeben werden. Schlüssel für dieses Array
|
|
|
- können jede der Pfad Spezifikations Schhüssel enthalten ('moduleDir', 'module',
|
|
|
- 'controller', 'action', und 'suffix'). Jede übergebene Variable wird verwendet;
|
|
|
- andernfalls werden Werte die auf der aktuellen Anfrage basieren angewendet.
|
|
|
+ <methodname>getViewScript($action, $vars)</methodname> erstellt den Pfad zu
|
|
|
+ einem View Skript das auf einer Aktion basiert die übergeben wird, und/oder
|
|
|
+ allen Variablen die in <varname>$vars</varname> übergeben werden. Schlüssel für
|
|
|
+ dieses Array können jede der Pfad Spezifikations Schhüssel enthalten
|
|
|
+ ('moduleDir', 'module', 'controller', 'action', und 'suffix'). Jede übergebene
|
|
|
+ Variable wird verwendet; andernfalls werden Werte die auf der aktuellen Anfrage
|
|
|
+ basieren angewendet.
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
- <code>getViewScript()</code> verwendet entweder <code>viewScriptPathSpec</code>
|
|
|
- oder <code>viewScriptPathNoControllerSpec</code> basierend auf den Einstellungen
|
|
|
+ <methodname>getViewScript()</methodname> verwendet entweder
|
|
|
+ <code>viewScriptPathSpec</code> oder
|
|
|
+ <code>viewScriptPathNoControllerSpec</code> basierend auf den Einstellungen
|
|
|
des <code>noController</code> Flags.
|
|
|
</para>
|
|
|
|
|
|
@@ -524,20 +545,21 @@ $viewRenderer =
|
|
|
<para>
|
|
|
Standardmäßig handelt
|
|
|
<classname>Zend_Controller_Action::getViewScript()</classname> in Vertretung
|
|
|
- zur <code>getViewScript()</code> Methode des <code>ViewRenderer</code>'s.
|
|
|
+ zur <methodname>getViewScript()</methodname> Methode des
|
|
|
+ <emphasis>ViewRenderer</emphasis>'s.
|
|
|
</para>
|
|
|
</note>
|
|
|
</listitem>
|
|
|
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- <code>render($action, $name, $noController)</code> prüft zuerst ob entweder
|
|
|
- <varname>$name</varname> oder <varname>$noController</varname> übergeben wurde,
|
|
|
- und wenn dem so ist, wird das betreffende Flag (respektive responseSegment und
|
|
|
- noController) im ViewRenderer gesetzt. Dann übergibt er das
|
|
|
+ <methodname>render($action, $name, $noController)</methodname> prüft zuerst ob
|
|
|
+ entweder <varname>$name</varname> oder <varname>$noController</varname>
|
|
|
+ übergeben wurde, und wenn dem so ist, wird das betreffende Flag (respektive
|
|
|
+ responseSegment und noController) im ViewRenderer gesetzt. Dann übergibt er das
|
|
|
<varname>$action</varname> Argument, wenn vorhanden, an
|
|
|
- <code>getViewScript()</code>. Am Ende wird der berechnete View Skript Pfad an
|
|
|
- <code>renderScript()</code> übergeben.
|
|
|
+ <methodname>getViewScript()</methodname>. Am Ende wird der berechnete View
|
|
|
+ Skript Pfad an <methodname>renderScript()</methodname> übergeben.
|
|
|
</para>
|
|
|
|
|
|
<note>
|
|
|
@@ -553,18 +575,20 @@ $viewRenderer =
|
|
|
<para>
|
|
|
Standardmäßig handelt
|
|
|
<classname>Zend_Controller_Action::render()</classname> in Vertretung zur
|
|
|
- <code>render()</code> Methode des <code>ViewRenderer</code>'s.
|
|
|
+ <methodname>render()</methodname> Methode des
|
|
|
+ <emphasis>ViewRenderer</emphasis>'s.
|
|
|
</para>
|
|
|
</note>
|
|
|
</listitem>
|
|
|
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- <code>renderBySpec($action, $vars, $name)</code> erlaubt es Pfad Spezifikations
|
|
|
- Variablen zu übergeben um den View Skript Pfad zu ermitteln der erstellt werden
|
|
|
- soll. Es übergibt <varname>$action</varname> und <varname>$vars</varname> an
|
|
|
- <code>getScriptPath()</code> und übergibt anschließend den resultierenden Skript
|
|
|
- Pfad und <varname>$name</varname> an <code>renderScript()</code>.
|
|
|
+ <methodname>renderBySpec($action, $vars, $name)</methodname> erlaubt es Pfad
|
|
|
+ Spezifikations Variablen zu übergeben um den View Skript Pfad zu ermitteln der
|
|
|
+ erstellt werden soll. Es übergibt <varname>$action</varname> und
|
|
|
+ <varname>$vars</varname> an <methodname>getScriptPath()</methodname> und
|
|
|
+ übergibt anschließend den resultierenden Skript Pfad und
|
|
|
+ <varname>$name</varname> an <methodname>renderScript()</methodname>.
|
|
|
</para>
|
|
|
</listitem>
|
|
|
</itemizedlist>
|
|
|
@@ -577,8 +601,8 @@ $viewRenderer =
|
|
|
<title>Grundsätzliche Verwendung</title>
|
|
|
|
|
|
<para>
|
|
|
- Am einfachsten, wird einfach der <code>ViewRenderer</code> Helfer mit dem Helfer
|
|
|
- Broker in der eigenen Bootstrap Datei, initialisiert und registriert, und
|
|
|
+ Am einfachsten, wird einfach der <emphasis>ViewRenderer</emphasis> Helfer mit dem
|
|
|
+ Helfer Broker in der eigenen Bootstrap Datei, initialisiert und registriert, und
|
|
|
anschließend die Variablen in den Aktion Methoden gesetzt.
|
|
|
</para>
|
|
|
|
|
|
@@ -625,23 +649,26 @@ class Foo_BarController extends Zend_Controller_Action
|
|
|
<para>
|
|
|
Wenn der Kontroller- oder Aktionsname aus mehreren Wörtern aufgebaut ist, müssen
|
|
|
diese, da der Dispatcher das benötigt, seperiert sein durch die URL nach
|
|
|
- spezifischem Pfad und Wort Begrenzer Zeichen. Der <code>ViewRenderer</code> ersetzt
|
|
|
- jeden Pfad Begrenzer den er im Kontrollernamen findet mit einem aktuellen Pfad
|
|
|
- Begrenzer ('/'), und jeden Wort Begrenzer der gefunden wird mit einem Bindestrich
|
|
|
- ('-') wenn Pfade erstellt werden. Deshalb würde ein Aufruf der Aktion
|
|
|
- <code>/foo.bar/baz.bat</code> zu <code>FooBarController::bazBatAction()</code> in
|
|
|
- FooBarControll.php weiterleiten was wiederum <code>foo-bar/baz-bat.phtml</code>
|
|
|
- rendern würde; ein Aufruf der Aktion <code>/bar_baz/baz-bat</code> für dazu das
|
|
|
- <code>Bar_BazController::bazBatAction()</code> in <code>Bar/BazController.php</code>
|
|
|
- dispatched wird (betrachte die Separation des Pfades) und
|
|
|
- <code>bar/baz/baz-bat.phtml</code> gerendert wird.
|
|
|
+ spezifischem Pfad und Wort Begrenzer Zeichen. Der <emphasis>ViewRenderer</emphasis>
|
|
|
+ ersetzt jeden Pfad Begrenzer den er im Kontrollernamen findet mit einem aktuellen
|
|
|
+ Pfad Begrenzer ('/'), und jeden Wort Begrenzer der gefunden wird mit einem
|
|
|
+ Bindestrich ('-') wenn Pfade erstellt werden. Deshalb würde ein Aufruf der Aktion
|
|
|
+ <filename>/foo.bar/baz.bat</filename> zu
|
|
|
+ <methodname>FooBarController::bazBatAction()</methodname> in
|
|
|
+ FooBarControll.php weiterleiten was wiederum
|
|
|
+ <filename>foo-bar/baz-bat.phtml</filename> darstellen würde; ein Aufruf der Aktion
|
|
|
+ <filename>/bar_baz/baz-bat</filename> für dazu das
|
|
|
+ <methodname>Bar_BazController::bazBatAction()</methodname> in
|
|
|
+ <filename>Bar/BazController.php</filename> dispatched wird (betrachte die
|
|
|
+ Separation des Pfades) und <filename>bar/baz/baz-bat.phtml</filename> gerendert
|
|
|
+ wird.
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
Es ist zu beachten das im zweiten Beispiel, das Modul noch immer das Standardmodul
|
|
|
ist, aber das der Kontroller, wegen der Existenz eines Pfad Separators, den Namen
|
|
|
- <code>Bar_BazController</code> in <code>Bar/BazController.php</code> empfängt. Der
|
|
|
- ViewRenderer emuliert die Kontroller Verzeichnis Hierarchie.
|
|
|
+ <code>Bar_BazController</code> in <filename>Bar/BazController.php</filename>
|
|
|
+ empfängt. Der ViewRenderer emuliert die Kontroller Verzeichnis Hierarchie.
|
|
|
</para>
|
|
|
</note>
|
|
|
|
|
|
@@ -653,8 +680,8 @@ class Foo_BarController extends Zend_Controller_Action
|
|
|
auszuschalten -- zum Beispiel, wenn eine andere Art von Ausgabe (XML, JSON, etc)
|
|
|
ausgegeben werden soll, oder wenn man einfach nichts ausgeben will. Es gibt zwei
|
|
|
Optionen: Alle Fälle von automatischem Rendern ausschalten
|
|
|
- (<code>setNeverRender()</code>), oder dieses einfach für die aktuelle Aktion
|
|
|
- ausschalten (<code>setNoRender()</code>).
|
|
|
+ (<methodname>setNeverRender()</methodname>), oder dieses einfach für die aktuelle
|
|
|
+ Aktion ausschalten (<methodname>setNoRender()</methodname>).
|
|
|
</para>
|
|
|
|
|
|
<programlisting language="php"><![CDATA[
|
|
|
@@ -683,8 +710,9 @@ class Bar_BatController extends Zend_Controller_Action
|
|
|
<note>
|
|
|
<para>
|
|
|
In den meisten Fällen, macht es keinen Sinn das automatische Rendern global
|
|
|
- auszuschalten (ala <code>setNeverRender()</code>), da das einzige das man dann vom
|
|
|
- <code>ViewRenderer</code> erhält das automatische Setup des View Objekts ist.
|
|
|
+ auszuschalten (ala <methodname>setNeverRender()</methodname>), da das einzige das
|
|
|
+ man dann vom <emphasis>ViewRenderer</emphasis> erhält das automatische Setup des
|
|
|
+ View Objekts ist.
|
|
|
</para>
|
|
|
</note>
|
|
|
|
|
|
@@ -696,9 +724,10 @@ class Bar_BatController extends Zend_Controller_Action
|
|
|
benannte, ausgeführt wird. Zum Beispiel, wenn man einen Kontroller hat der Aktionen
|
|
|
sowohl hinzufügen als auch bearbeiten kann, und beide mit der selben 'form' View
|
|
|
angezeigt werden, aber mit unterschiedlichen Werten gesetzt werden. Der Skript Name
|
|
|
- kann ganz einfach geändert werden. Entweder mit <code>setScriptAction()</code>,
|
|
|
- <code>setRender()</code> oder durch Aufruf des Helfers als Methode, was wiederum
|
|
|
- <code>setRender()</code> ausruft.
|
|
|
+ kann ganz einfach geändert werden. Entweder mit
|
|
|
+ <methodname>setScriptAction()</methodname>, <methodname>setRender()</methodname>
|
|
|
+ oder durch Aufruf des Helfers als Methode, was wiederum
|
|
|
+ <methodname>setRender()</methodname> ausruft.
|
|
|
</para>
|
|
|
|
|
|
<programlisting language="php"><![CDATA[
|
|
|
@@ -739,8 +768,9 @@ class Foo_BarController extends Zend_Controller_Action
|
|
|
<para>
|
|
|
Was wenn ein View Objekt modifiziert werden soll -- zum Beispiel, die Helfer Pfade
|
|
|
ändern, oder die Kodierung? Das kann durch Modifikation des View Objekts, das im
|
|
|
- Kontroller gesetzt ist, gemacht werden, oder durch herausnehmen des View Objekts aus
|
|
|
- dem <code>ViewRenderer</code>; beide referenzieren auf das gleiche Objekt.
|
|
|
+ Kontroller gesetzt ist, gemacht werden, oder durch herausnehmen des View Objekts
|
|
|
+ aus dem <emphasis>ViewRenderer</emphasis>; beide referenzieren auf das gleiche
|
|
|
+ Objekt.
|
|
|
</para>
|
|
|
|
|
|
<programlisting language="php"><![CDATA[
|
|
|
@@ -813,8 +843,8 @@ Zend_Controller_Action_HelperBroker::addHelper($viewRenderer);
|
|
|
|
|
|
<para>
|
|
|
Manchmal, ist es notwendig mehrfache View Skripte von einer einzelnen Aktion zu
|
|
|
- rendern. Das ist sehr geradlinig -- einfach mehrere Aufrufe zu <code>render()</code>
|
|
|
- machen:
|
|
|
+ rendern. Das ist sehr geradlinig -- einfach mehrere Aufrufe zu
|
|
|
+ <methodname>render()</methodname> machen:
|
|
|
</para>
|
|
|
|
|
|
<programlisting language="php"><![CDATA[
|