|
|
Hier kann man API-artige Dokumentation über alle Ressource Plugins
finden die standardmäßig in Zend_Application vorhanden sind.
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.
Example #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.
[production] resources.db.adapter = "pdo_mysql" resources.db.params.host = "localhost" resources.db.params.username = "webuser" resources.db.params.password = "XXXXXXX" resources.db.params.dbname = "test" resources.db.isDefaultTableAdapter = true
Note: 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:
$resource = $bootstrap->getPluginResource('db');Sobald man das Ressource Objekt hat, kann man den DB Adapter erhalten indem die getDbAdapter() Methode verwendet wird:
$db = $resource->getDbAdapter();
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.
Example #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.
[production] resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers" resources.frontController.moduleControllerDirectoryName = "actions" resources.frontController.moduleDirectory = APPLICATION_PATH "/modules" resources.frontController.defaultControllerName = "site" resources.frontController.defaultAction = "home" resources.frontController.defaultModule = "static" resources.frontController.baseUrl = "/subdir" resources.frontController.plugins.foo = "My_Plugin_Foo" resources.frontController.plugins.bar = "My_Plugin_Bar" resources.frontController.env = APPLICATION_ENV
Example #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.
$bootstrap->bootstrap('frontController');
$front = $bootstrap->frontController;
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.
Note: 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).
Example #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.
[production] news.resources.db.adapter = "pdo_mysql" news.resources.db.params.host = "localhost" news.resources.db.params.username = "webuser" news.resources.db.params.password = "XXXXXXX" news.resources.db.params.dbname = "news" news.resources.layout.layout = "news"
pdo_mysql localhost webuser XXXXXXX news true
Example #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.
$resource = $bootstrap->getPluginResource('modules');
$moduleBootstraps = $resource->getExecutedBootstraps();
$newsBootstrap = $moduleBootstraps['news'];
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.
Example #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.
resources.session.save_path = APPLICATION_PATH "/../data/session" resources.session.use_only_cookies = true resources.session.remember_me_seconds = 864000 resources.session.saveHandler.class = "Zend_Session_SaveHandler_DbTable" resources.session.saveHandler.options.name = "session" resources.session.saveHandler.options.primary.session_id = "session_id" resources.session.saveHandler.options.primary.save_path = "save_path" resources.session.saveHandler.options.primary.name = "name" resources.session.saveHandler.options.primaryAssignment.sessionId = "sessionId" resources.session.saveHandler.options.primaryAssignment.sessionSavePath = "sessionSavePath" resources.session.saveHandler.options.primaryAssignment.sessionName = "sessionName" resources.session.saveHandler.options.modifiedColumn = "modified" resources.session.saveHandler.options.dataColumn = "session_data" resources.session.saveHandler.options.lifetimeColumn = "lifetime"
Note: Die Datenbank zuerst bootstrappen!
Wenn man den
Zend_Session_SaveHandler_DbTableSession 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äßigenZend_Db_TableAdapter setzt.
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.
Example #7 Beispiel der Konfiguration einer View Ressource
Anbei ist das Beispiel eines INI Abschnitts der zeigt wie die View Ressource konfiguriert werden kann.
resources.view.encoding = "UTF-8" resources.view.basePath = APPLICATION_PATH "/views/scripts"
|
|
Copyright © 2005-2011 Zend Technologies Inc (compiled by mikaelkael with ZFDocumentor - SVN 18616).

