Vorhandene Ressource PluginsHier kann man API-artige Dokumentation über alle Ressource Plugins finden die standardmäßig in Zend_Application vorhanden sind. Zend_Application_Resource_CachemanagerZend_Application_Resource_Cachemanager kann verwendet werden um ein Bündel von Zend_Cache Optionen zu setzen die verwendet werden sollen wenn Caches lazy geladen werden bei der Verwendung von Zend_Cache_Manager Da der Cache Manager ein Lazy Loading Mechanismus ist, werden die Optionen auf Options Templates übersetzt welche verwendet werden um ein Cache Objekt auf Anfrage zu initialisieren. Example #1 Beispiel einer Cachemanager Ressource Konfiguration Anbei ist eine Beispiel INI Datei die zeigt wie Zend_Cache_Manager konfiguriert werden kann. Das Format ist der Präfix der Cachemanager Ressource (resources.cachemanager) gefolgt von dem Namen der einer Cache Template/Bündel Option zugeordnet werden soll (z.B. resources.cachemanager.database) und letztendlich gefolgt von einer typischen Zend_Cache Option.
Das Empfangen dieses Caches vom Cache Manager ist in Wirklichkeit so einfach wie der Zugriff auf eine Instanz des Managers (Zend_Cache_Manager) was von Zend_Application_Resource_Cachemanager empfangen wird beim Aufruf von $cacheManager->getCache('database');. Das folgende Beispiel ist von einem Controller genommen bei dem auf die Bootstrap Klasse als Front Controller Parameter zugegriffen werden kann (welcher automatisch wärend des bootstrappens zugeordnet wird). Wie man sehen kann implementiert die Cache Manager Ressource eine getCacheManager() Methode um die ge-bootstrappte Instanz von Zend_Cache_Manager zu erhalten.
Siehe auch die Methode Zend_Cache::factory() um eine Beschreibung der Standardwerte zu bekommen welche man zuordnen kann wenn ein Cache über eine Konfigurationsdatei konfiguriert wurde wie im obigen Beispiel einer INI Datei. Zend_Application_Resource_DbZend_Application_Resource_Db initialisiert einen Zend_Db Adapter basieren auf den Ihm übergebenen Optionen. Standardmäßig, setzt es den Adapter als Default Adapter zur Verwendung mit Zend_Db_Table. Wenn man mehrere Datenbanken simultan verwenden will, kann man das Multidb Ressource Plugin verwenden. Die folgenden Konfigurationsschlüssel werden erkannt:
Example #2 Beispiel der Konfiguration einer DB Adapter Ressource Anbei ist das Beispiel einer INI Konfiguration die verwendet werden kann um die DB Ressource zu initialisieren.
Zend_Application_Resource_DojoZend_Application_Resource_Dojo kann verwendet werden um die Viewhelfer von Zend_Dojo zu konfigurieren. Example #3 Beispiel einer Dojo Ressource Konfiguration Anbei ist ein Beispiel einer INI Datei welches zeigt wie Zend_Dojo aktiviert werden kann.
Das Zend_Dojo Ressource Plugin verwendet die Optionen für Zend_Dojo_View_Helper_Dojo_Container::setOptions() um die Viewhelfer zu konfigurieren. Sehen Sie bitte im Kapitel über Zend_Dojo für eine vollständige Beschreibung und die vorhandenen Optionen nach. Zend_Application_Resource_FrontcontrollerDie warscheinlich am meisten verwendete Ressource die man mit Zend_Application verwenden wird, ist die Front Controller Ressource, die eine Möglichkeit bietet den Zend_Controller_Front zu konfigurieren. Diese Ressource bietet die Möglichkeit verschiedenste Front Controller Parameter zu setzen, Plugins zu spezifizieren die initialisiert werden sollen, und vieles mehr. Sobald Sie initialisiert wurde, fügt die Ressource die $frontController Eigenschaft vom Bootstrap in die Zend_Controller_Front Instanz hinzu. Die folgenden Konfigurationsschlüssel sind vorhanden, und sind abhängig von der Groß- oder Kleinschreibung:
Wenn ein Schlüssel übergeben wird der nicht erkannt wird, wird dieser als Parameter beim Front Controller registriert, indem er an setParam() übergeben wird. Example #4 Beispiel der Konfiguration einer Front Controller Ressource Anbei ist ein Beispiel eines INI Abschnitts der zeigt wie die Front Controller Ressource konfiguriert werden kann.
Example #5 Empfangen des Front Controllers im eigenen Bootstrap Sobald die Front Controller Ressource initialisiert wurde, kann die Front Controller Instanz über die $frontController Eigenschaft der Bootstraps geholt werden.
Zend_Application_Resource_LayoutZend_Application_Resource_Layout kann verwendet werden um Zend_Layout zu konfigurieren. Die Optionen für die Konfiguration sind die Optionen von Zend_Layout. Example #6 Einfache Konfiguration eines Layouts Anbei ist ein beispielhaftes INI Schnipsel das zeigt wie Layout Ressourcen konfiguriert werden können.
Zend_Application_Resource_LocaleZend_Application_Resource_Locale kann verwendet werden um ein Anwendungsweites Gebietsschema zu setzen welches dann in allen Klassen und Komponenten verwendet wird welche mit Lokalisierung oder Internationalisierung arbeiten. Standardmäßig wird das Gebietsschema in einem Zend_Registry Eintrag mit dem Schlüssel 'Zend_Locale' gespeichert. Es gibt grundsätzlich drei Anwendungsfälle für das Locale Ressource Plugin. Jeder von Ihnen sollte abhängig auf den Notwendigkeiten der Anwendung verwendet werden. Automatische Erkennung des zu verwendenden GebietsschemasOhne Spezifikation einer Option für Zend_Application_Resource_Locale, erkennt Zend_Locale das Gebietsschema, welches in der Anwendung verwendet werden soll automatisch. Diese Erkennung funktioniert weil der Client die gewünschte Sprache in seiner HTTP Anfrage sendet. Normalerweise sendet der Client die Sprache welche er sehen will, und Zend_Locale verwendet diese Information für die Erkennung. Aber es gibt 2 Probleme mit diesem Verfahren:
In beiden Fällen wird Zend_Locale auf einen anderen Mechanismus zurückfallen um das Gebietsschema zu erkennen:
Für weitere Informationen über die Erkennung von Gebietsschema sollte in dieses Kapitel für Zend_Locale's automatischer Erkennung gesehen werden. Das Gebietsschema automatisch erkennen und ein eigenes Fallback hinzufügenDie automatische Erkennung von vorher könnte zu Problemen führen wenn das Gebietsschema nicht erkannt werden kann und man ein anderes Standardgebietsschema als en haben will. Um das zu verhindern erlaubt es Zend_Application_Resource_Locale ein eigenes Gebietsschema zu setzen welches in dem Fall verwendet wird wenn kein Gebietsschema erkannt wird. Example #7 Automatische Erkennung des Gebietsschemas und setzen eines Fallbacks Der folgende Abschnitt zeigt wie ein eigenes Standardgebietsschema gesetzt werden kann welches verwendet wird wenn der Client selbst kein Gebietsschema sendet.
Erzwingen eines Gebietsschemas für die VerwendungManchmal ist es nützlich ein einzelnes Gebietsschema zu definieren welches verwendet werden soll. Das kann durch Verwendung der Option force getan werden. In diesem Fall wird dieses einzelne Gebietsschema verwendet und die automatische Erkennung wird ausgeschaltet. Example #8 Definition eines einzelnen Gebietsschemas für die Verwendung Der folgende Abschnitt zeigt wie ein einzelnes Gebietsschema für die komplette Anwendung gesetzt werden kann.
Zend_Application_Resource_LogZend_Application_Resource_Log instanziert eine Instanz von Zend_Log mit einer beliebigen Anzahl an Log Writern. Die Konfiguration wird der Zend_Log::factory() Methode übergeben, was es erlaubt Kombinationen von Log Writern und Filtern zu spezifizieren. Die Log Instanz kann später durch den Bootstrap empfangen werden um Events zu loggen. Example #9 Beispiel Konfiguration einer Log Ressource Anbei ist ein Beispiel eines INI Abschnitts der zeigt wir die Log Ressource konfiguriert wird.
Für weitere Informationen über vorhandene Optionen, siehe in die Dokumentation von Zend_Log::factory(). Zend_Application_Resource_MailZend_Application_Resource_Mail kann verwendet werden um einen Transport für Zend_Mail zu instanzieren, oder den Standardnamen und Adresse zu setzen, sowie die standardmäßigen replyto- Namen und Adressen. Wenn ein Transport instanziert wird, wird er automatisch bei Zend_Mail registriert. Aber durch das Setzen der transport.register Direktive auf FALSE, findet dieses Verhalten nicht mehr statt. Example #10 Beispiel der Konfiguration der Mail Ressource Anbei ist ein beispielhafter INI Abschnitt der zeigt wie das Mail Ressource Plugin konfiguriert wird.
Zend_Application_Resource_ModulesZend_Application_Resource_Modules wird verwendet im eigene Anwendungsmodule zu initialisieren. Wenn das Modul eine Bootstrap.php Datei in seinem Root hat, und es eine Klasse die Module_Bootstrap heißt enthält (wobei "Module" der Modulname ist), dann wird diese Klasse verwendet um das Modul zu bootstrappen. Standardmäßig wird eine Instanz vom Zend_Application_Module_Autoloader für das Modul erstellt, indem der Modulname und das Verzeichnis dazu verwendet werden sie zu initialisieren. Da die Modul Ressourcen standardmäßig keine Argumente entgegen nehmen muss man, um das über die Konfiguration zu gestatten, diese als leeres Array erstellen. In der INI Stil Konfiguration sieht das etwa so aus:
In XML Stil Konfiguration sieht das etwa so aus:
Bei Verwendung eines PHP Arrays, einfach Erstellen indem ein leeres Array verwendet wird:
Example #11 Module konfigurieren Man kann eine modul-spezifische Konfiguration spezifizieren indem der Modulname als Präfix oder Unter-Sektion in der Konfigurationsdatei verwendet wird. Nehmen wir als Beispiel an, das die eigene Anwendung ein "news" Modul hat. Nachfolgend sind die INI und XML Beispiele die eine Konfiguration von Ressourcen in diesem Modul zeigen.
Example #12 Eine spezielle Modul Bootstrap erhalten Manchmal will man ein Bootstrap Objekt für ein spezifisches Modul erhalten -- möglicherweise um andere Bootstrap Methoden auszuführen, oder um den Autoloader zu holen damit er konfiguriert werden kann. Das kann man erreichen indem die getExecutedBootstraps() Methode der Modul Ressource verwendet wird.
Zend_Application_Resource_MultidbZend_Application_Resource_Multidb wird verwendet um mehrere Datenbankverbindungen zu initialisieren. Man kann die gleichen Optionen wie beim Db Ressource Plugin verwenden. Trotzdem kann für das Spezifizieren einer Standardverbindung auch die 'default' Direktive verwendet werden. Example #13 Mehrere Db Verbindungen konfigurieren Anbei ist eine beispielhafte INI Konfiguration die verwendet werden kann um zwei Db Verbindungen zu initialisieren.
Example #14 Einen speziellen Datenbankadapter empfangen Wenn dieses Ressource Plugin verwendet wird, will man normalerweise eine spezifische Datenbank erhalten. Das kann durch Verwendung von getDb() von der Ressource getan werden. Die Methode getDb() gibt eine Instanz einer Klasse zurück welche Zend_Db_Adapter_Abstract erweitert. Wenn man keine Standarddatendank gesetzt hat, wird eine Exception geworfen wenn diese Methode ohne die Spezifikation eines Parameters aufgerufen wird.
Example #15 Den standardmäßigen Datenbankadapter empfangen Zusätzlich kann der standardmäßige Datenbankadapter empfangen werden indem die Methode getDefaultDb() verwendet wird. Wenn man keinen standardmäßigen Adapter gesetzt hat, wird der erste konfigurierte Db Adapter zurückgegeben. Wenn man FALSE als ersten Parameter spezifiziert dann wird NULL zurückgegeben wenn kein standardmäßiger Datenbankadapter gesetzt wurde. Anbei ist ein Beispiel welches annimmt dass das Multidb Ressource Plugin mit dem obigen INI Beispiel konfiguriert wurde:
Zend_Application_Resource_RouterZend_Application_Resource_Router kann verwendet werden um den Router so zu konfigurieren wie er im Front Controller registriert wird. Die Konfigurationsoptionen sind die gleichen wie die Optionen von Zend_Controller_Router_Route. Example #17 Beispiel Konfiguration für eine Router Ressource Anbei ist ein Beispiel INI Stück welches zeigt wie die Router Ressource konfiguriert wird.
Für weitere Informationen über den Chain Name Separator, sehen Sie bitte in dessen Sektion. Zend_Application_Resource_SessionZend_Application_Resource_Session erlaubt es Zend_Session zu konfigurieren, sowie optional einen Session SaveHandler zu initialisieren. Um einen Session Save Handler zu setzen, muß einfach der Optionsschlüssel saveHandler (Groß- und Kleinschreibung beachten) an die Ressource übergeben werden. Der Wert dieser Option kann einer der folgenden sein:
Jeder andere übergebene Optionsschlüssel wird an Zend_Session::setOptions() übergeben um Zend_Session zu konfigurieren. Example #18 Beispiel der Konfiguration einer Session Ressource Anbei ist das Beispiel eines INI Abschnitts der zeigt wie die Session Ressource konfiguriert werden kann. Er setzt verschiedene Zend_Session Optionen, und konfiguriert eine Zend_Session_SaveHandler_DbTable Instanz.
Zend_Application_Resource_ViewZend_Application_Resource_View kann verwendet werden um eine Instanz von Zend_View zu konfigurieren. Konfigurations Optionen sind die Zend_View Optionen. Sobald die View Instanz konfiguriert wurde, erstellt Sie eine Instanz von Zend_Controller_Action_Helper_ViewRenderer und registriert den ViewRenderer im Zend_Controller_Action_HelperBroker -- von dem man Sie später empfangen kann. Example #19 Beispiel der Konfiguration einer View Ressource Anbei ist das Beispiel eines INI Abschnitts der zeigt wie die View Ressource konfiguriert werden kann.
|