Programmer's Reference Guide

Kern Funktionalität

Vorhandene Ressource Plugins

Hier kann man API-artige Dokumentation über alle Ressource Plugins finden die standardmäßig in Zend_Application vorhanden sind.

Zend_Application_Resource_Db

Zend_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.

Die folgenden Konfigurationsschlüssel werden erkannt:

  • adapter: Zend_Db Adaptertyp.

  • params: Assoziatives Array von Konfigurationsparametern das verwendet wird wenn man die Instanz des Adapter empfängt.

  • isDefaultTableAdapter: Ob dieser Adapter als Standard-Tabellen Adapter verwendet werden soll oder nicht.

Beispiel #1 Beispiel der Konfiguration einer DB Adapter Ressource

Anbei ist das Beispiel einer INI Konfiguration die verwendet werden kann um die DB Ressource zu initialisieren.

  1. [production]
  2. resources.db.adapter = "pdo_mysql"
  3. resources.db.params.host = "localhost"
  4. resources.db.params.username = "webuser"
  5. resources.db.params.password = "XXXXXXX"
  6. resources.db.params.dbname = "test"
  7. resources.db.isDefaultTableAdapter = true

Hinweis: Empfangen der Adapter Instanz
Wenn man den, mit dieser Ressource initialisierten Adapter, nicht zum Standard-Tabellen Adapter macht, wie erhält man dann die Adapter Instanz ?
Wie bei jedem Ressource Plugin, kann an das DB Ressource Plugin von der Bootstrap Datei erhalten:

  1. $resource = $bootstrap->getPluginResource('db');
Sobald man das Ressource Objekt hat, kann man den DB Adapter erhalten indem die getDbAdapter() Methode verwendet wird:
  1. $db = $resource->getDbAdapter();

Zend_Application_Resource_Frontcontroller

Die 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ß-/Kleinschreibung:

  • controllerDirectory: Entweder ein Stringwert der ein einzelnes Controller Verzeichnis spezifiziert, oder ein Array von Modul/Controller Verzeichnis Paaren.

  • moduleControllerDirectoryName: Ein Stringwert der auf ein Unterverzeichnis unter einem Modul zeigt, das Controller enthält.

  • moduleDirectory: Verzeichnis in dem Module gefunden werden können.

  • defaultControllerName: Basisname des Standard Controllers (normalerweise "index").

  • defaultAction: Basisname der Standard Aktion (normalerweise "index").

  • defaultModule: Basisname des Standard Moduls (normalerweise "default").

  • baseUrl: Explizite Basis URL zur Anwendung (normalerweise automatisch erkannt).

  • plugins: Array von Front Controller Plugin Klassennamen. Die Ressource wird jede Klasse instanziieren (ohne Contructor Argumente) und die Instanz dann mit dem Front Controller registrieren.

  • params: Array von Schlüssel/Wert Paaren die mit dem Front Controller registriert werden sollen.

Wenn ein Schlüssel übergeben wird der nicht erkannt wird, wird dieser als Parameter beim Front Controller registriert, indem er an setParam() übergeben wird.

Beispiel #2 Beispiel der Konfiguration einer Front Controller Ressource

Anbei ist ein Beispiel eines INI Abschnitts der zeigt wie die Front Controller Ressource konfiguriert werden kann.

  1. [production]
  2. resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
  3. resources.frontController.moduleControllerDirectoryName = "actions"
  4. resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
  5. resources.frontController.defaultControllerName = "site"
  6. resources.frontController.defaultAction = "home"
  7. resources.frontController.defaultModule = "static"
  8. resources.frontController.baseUrl = "/subdir"
  9. resources.frontController.plugins.foo = "My_Plugin_Foo"
  10. resources.frontController.plugins.bar = "My_Plugin_Bar"
  11. resources.frontController.env = APPLICATION_ENV

Beispiel #3 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.

  1. $bootstrap->bootstrap('frontController');
  2. $front = $bootstrap->frontController;

Zend_Application_Resource_Modules

Zend_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.

Hinweis: Abhängigkeiten der Front Controller Ressource
Die Module Ressource hat eine Abhängigkeit zur Front Controller Ressource. Man kann natürlich seine eigenen Ersatz für diese Ressource, über eine eigene Front Controller Ressource Klasse, anbieten oder eine Initialisierungsmethode für eine Klasse -- solange die Ressource Plugin Klasse mit "Frontcontroller" endet, oder die Initialisierungsmethode "_initFrontController" heißt (abhängig von der Groß-/Kleinschreibung).

Beispiel #4 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.

  1. [production]
  2. news.resources.db.adapter = "pdo_mysql"
  3. news.resources.db.params.host = "localhost"
  4. news.resources.db.params.username = "webuser"
  5. news.resources.db.params.password = "XXXXXXX"
  6. news.resources.db.params.dbname = "news"
  7. news.resources.layout.layout = "news"
  1. <?xml version="1.0"?>
  2. <config>
  3.     <production>
  4.         <news>
  5.             <resources>
  6.                 <db>
  7.                     <adapter>pdo_mysql</adapter>
  8.                     <params>
  9.                         <host>localhost</host>
  10.                         <username>webuser</username>
  11.                         <password>XXXXXXX</password>
  12.                         <dbname>news</dbname>
  13.                     </params>
  14.                     <isDefaultAdapter>true</isDefaultAdapter>
  15.                 </db>
  16.             </resources>
  17.         </news>
  18.     </production>
  19. </config>

Beispiel #5 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.

  1. $resource = $bootstrap->getPluginResource('modules');
  2. $moduleBootstraps = $resource->getExecutedBootstraps();
  3. $newsBootstrap = $moduleBootstraps['news'];

Zend_Application_Resource_Session

Zend_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ß-/Kleinschreibung beachten) an die Ressource übergeben werden. Der Wert dieser Option kann einer der folgenden sein:

  • String : Ein String der eine Klasse benennt die Zend_Session_SaveHandler_Interface implementiert und initiiert werden soll.

  • Array : Ein Array mit den Schlüsseln "class", und optional "options", das eine Klasse benennt die Zend_Session_SaveHandler_Interface implementiert und iniiert werden, und ein Array von Optionen die an dessen Contructor übergeben werden soll.

  • Zend_Session_SaveHandler_Interface: Ein Objekt das dieses Interface implementiert.

Jeder andere übergebene Optionsschlüssel wird an Zend_Session::setOptions() übergeben um Zend_Session zu konfigurieren.

Beispiel #6 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.

  1. resources.session.save_path = APPLICATION_PATH "/../data/session"
  2. resources.session.use_only_cookies = true
  3. resources.session.remember_me_seconds = 864000
  4. resources.session.saveHandler.class = "Zend_Session_SaveHandler_DbTable"
  5. resources.session.saveHandler.options.name = "session"
  6. resources.session.saveHandler.options.primary.session_id = "session_id"
  7. resources.session.saveHandler.options.primary.save_path = "save_path"
  8. resources.session.saveHandler.options.primary.name = "name"
  9. resources.session.saveHandler.options.primaryAssignment.sessionId = "sessionId"
  10. resources.session.saveHandler.options.primaryAssignment.sessionSavePath = "sessionSavePath"
  11. resources.session.saveHandler.options.primaryAssignment.sessionName = "sessionName"
  12. resources.session.saveHandler.options.modifiedColumn = "modified"
  13. resources.session.saveHandler.options.dataColumn = "session_data"
  14. resources.session.saveHandler.options.lifetimeColumn = "lifetime"

Hinweis: Die Datenbank zuerst bootstrappen!
Wenn man den Zend_Session_SaveHandler_DbTable Session Save Handler konfiguriert, muß man für diesen zuerst die Datenbank Verbindung konfigurieren damit er arbeitet. Das kann entweder durch Verwendung der Db Ressource getan werden -- und indem man sicherstellt das der "resources.db" Schlüssel vor dem "resources.session" Schlüssel kommt -- oder durch Schreiben einer eigenen Ressource die die Datenbank initialisiert, und im speziellen den Standardmäßigen Zend_Db_Table Adapter setzt.

Zend_Application_Resource_View

Zend_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.

Beispiel #7 Beispiel der Konfiguration einer View Ressource

Anbei ist das Beispiel eines INI Abschnitts der zeigt wie die View Ressource konfiguriert werden kann.

  1. resources.view.encoding = "UTF-8"
  2. resources.view.basePath = APPLICATION_PATH "/views/scripts"

Kern Funktionalität
blog comments powered by Disqus

Select a Version

Languages Available

Components

Search the Manual