|
|
@@ -1,5 +1,5 @@
|
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
|
-<!-- EN-Revision: 15346 -->
|
|
|
+<!-- EN-Revision: 15439 -->
|
|
|
<!-- Reviewed: no -->
|
|
|
<sect2 id="zend.application.core-functionality.resource-resourceabstract">
|
|
|
<title>Zend_Application_Resource_ResourceAbstract</title>
|
|
|
@@ -95,4 +95,113 @@
|
|
|
</tbody>
|
|
|
</tgroup>
|
|
|
</table>
|
|
|
+
|
|
|
+ <sect3 id="zend.application.core-functionality.resource-resourceabstract.names">
|
|
|
+ <title>Ressourcen Namen</title>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Wenn man Ressourcen Plugins registriert, besteht ein Problem das hierdurch entsteht
|
|
|
+ darin, wie man von der Eltern-Bootstrap Klasse auf diese verweist. Es gibt drei
|
|
|
+ verschiedene Mechanismen die verwendet werden können, abhängig davon wie die
|
|
|
+ Bootstrap und deren Plugin Ressourcen konfiguriert wurden.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Erstens kann man, wenn die Plugins mit einem definierten Präfix Pfad definiert wurden,
|
|
|
+ einfach mit Ihrem "Kurz-Namen" auf die verweisen -- z.B. der Teil des Klassennamens
|
|
|
+ der dem Klassen Präfix folgt. Als Beispiel kann auf die Klasse
|
|
|
+ "Zend_Application_Resource_View" einfach mit "View" verweist werden, da der Präfix
|
|
|
+ Pfad bereits registriert ist. Man kann Sie registrieren, indem der komplette
|
|
|
+ Klassenname oder der Kurzname verwendet wird:
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <programlisting role="php"><![CDATA[
|
|
|
+$app = new Zend_Application(APPLICATION_ENV, array(
|
|
|
+ 'pluginPaths' => array(
|
|
|
+ 'My_Resource' => 'My/Resource/',
|
|
|
+ ),
|
|
|
+ 'resources' => array(
|
|
|
+ // Wenn die folgende Klasse existiert:
|
|
|
+ 'My_Resource_View' => array(),
|
|
|
+
|
|
|
+ // Dann ist das gleichwertig:
|
|
|
+ 'View' => array(),
|
|
|
+ ),
|
|
|
+));
|
|
|
+]]></programlisting>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ In jedem Fall kann man die Ressource bootstrappen und Sie später erhalten indem der
|
|
|
+ Kurzname verwendet wird:
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <programlisting role="php"><![CDATA[
|
|
|
+$bootstrap->bootstrap('view');
|
|
|
+$view = $bootstrap->getResource('view');
|
|
|
+]]></programlisting>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Zweitens kann man, wenn kein passender Plugin Pfad definiert ist, trotzdem eine
|
|
|
+ Ressource durch den kompletten Klassennamen übergeben. In diesem Fall kann man auf
|
|
|
+ Sie verweisen indem der komplette Klassenname der Ressource verwendet wird:
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <programlisting role="php"><![CDATA[
|
|
|
+$app = new Zend_Application(APPLICATION_ENV, array(
|
|
|
+ 'resources' => array(
|
|
|
+ // Das lädt die standardmäßige 'View' Ressource:
|
|
|
+ 'View' => array(),
|
|
|
+
|
|
|
+ // Wärend das eine Ressource mit einem speziellen Klassennamen lädt:
|
|
|
+ 'My_Resource_View' => array(),
|
|
|
+ ),
|
|
|
+));
|
|
|
+]]></programlisting>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Offensichtlich mach das eine Referenz auf die Ressource viel einfacher:
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <programlisting role="php"><![CDATA[
|
|
|
+$bootstrap->bootstrap('My_Resource_View');
|
|
|
+$view = $bootstrap->getResource('My_Resource_View');
|
|
|
+]]></programlisting>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Das bringt uns zur dritten Option. Man kann einen expliziten Namen spezifizieren, zu
|
|
|
+ dem eine Ressourceklasse sich registriert. Das kann durch das Hinzufügen einer
|
|
|
+ public <code>$_explicitType</code> Eigenschaft, mit einem Stringwert, in der Plugin
|
|
|
+ Ressourceklasse durchgeführt werden; dieser Wert wird dann immer verwendet wenn man
|
|
|
+ zur Plugin Ressource über die Bootstrap verweisen will. Als Beispiel, definieren wir
|
|
|
+ unsere eigene View Klasse:
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <programlisting role="php"><![CDATA[
|
|
|
+class My_Resource_View extends Zend_Application_Resource_ResourceAbstract
|
|
|
+{
|
|
|
+ public $_explicitType = 'My_View';
|
|
|
+
|
|
|
+ public function init()
|
|
|
+ {
|
|
|
+ // Initialisierungen durchführen...
|
|
|
+ }
|
|
|
+}
|
|
|
+]]></programlisting>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Wir können dann die Ressource bootstrappen, oder Sie durch den Namen "My_View"
|
|
|
+ erhalten:
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <programlisting role="php"><![CDATA[
|
|
|
+$bootstrap->bootstrap('My_View');
|
|
|
+$view = $bootstrap->getResource('My_View');
|
|
|
+]]></programlisting>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Durch Verwendung der verschiedenen Wege der Benennung kann man bestehende Ressourcen
|
|
|
+ überschreiben, eigene hinzufügen, verschiedene Ressourcen mischen um komplexe
|
|
|
+ Initialisierungen durchzuführen, und mehr.
|
|
|
+ </para>
|
|
|
+ </sect3>
|
|
|
</sect2>
|