Programmer's Reference Guide

Fonctionnalités principales

Plugins de ressources disponibles

Vous trouverez ci-après la documentation de type API concernant tous les plugins disponibles par défaut dans Zend_Application.

Zend_Application_Resource_Db

Zend_Application_Resource_Db initialisera un adaptateur Zend_Db basé sur les options qui lui seront fournis. Par défaut, il spécifiera aussi cet adaptateur comme adaptateur par défaut à utiliser avec Zend_Db_Table.

Les clés de configuration suivantes sont reconnues :

  • adapter : le type de l'adaptateur Zend_Db.

  • params : un tableau associatif des paramètres de configuration à utiliser pour la récupération de l'instance de l'adaptateur.

  • isDefaultTableAdapter : spécifie si l'adaptateur est celui par défaut des tables.

Exemple #1 Exemple de configuration d'une ressource d'adaptateur de base données

Voici un exmple de configuration INI qui peut-être utilisé pour initialiser une ressource de base de données.

  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

Note: Récupération de l'instance de l'adaptateur
Si vous choisissez de ne pas utiliser l'adaptateur instancié avec cette ressource comme adaptateur par défaut pour les tables, comment pourrez-vous récupérer l'instance ?
Comme tout plugin de ressource, vous pouvez extraire votre plugin de ressource de votre fichier d'initialisation :

  1. $resource = $bootstrap->getPluginResource('db');
Une fois que vous avez l'objet ressource, vous pouvez récupérer l'adaptateur de base de données en utilisant la méthode getDbAdapter() :
  1. $db = $resource->getDbAdapter();

Zend_Application_Resource_Frontcontroller

Probablement la ressource que vous allez le plus communément charger avec Zend_Application sera la ressource de contrôleur frontal qui fournit la possibilité de configurer Zend_Controller_Front. Cette ressource permet de spécifier n'importe quel paramètre du contrôleur frontal, de spécifier les plugins à initialiser, et bien plus...

Une fois initialisée, la ressource assigne la propriété $frontController du fichier d'initialisation à l'instance Zend_Controller_Front.

Les clés de configuration disponibles incluent les suivantes et sont sensibles à la casse :

  • controllerDirectory : une chaîne de caractères spécifiant un seul dossier de contrôleurs, ou un tableau associant un nom de module et un dossier de contrôleurs.

  • moduleControllerDirectoryName : une chaîne de caractères indiquant un sous-dossier dans ce module qui contient les contrôleurs.

  • moduleDirectory : un dossier dans lequel tous les modules peuvent être trouvés.

  • defaultControllerName : nom du contrôleur par défaut (normalement "index").

  • defaultAction : nom de l'action par défaut (normalement "index").

  • defaultModule : nom du module par défaut (normalement "default").

  • baseUrl : URL de base explicite vers l'application (normalement auto-détecté).

  • plugins : tableau de nom de classe de plugins de contrôleurs. La ressource instanciera chaque classe (sans arguments de contructeur) et les enregistrera dans le contrôleur frontal.

  • params : tableau de paires clés / valeurs à enregistrer dans le contrôleur frontal.

Si une clé non-connue est fournie, elle sera enregistrée comme paramètre du contrôleur frontal en la fournissant à setParam().

Exemple #2 Exemple de configuration d'une ressource de contrôleur frontal

Voici un extrait de configuration INI montrant comment configurer la ressource de contrôleur frontal.

  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

Exemple #3 Récupération de votre contrôleur frontal à partir de votre initialiseur

Une fois la ressource de contrôleur frontal initialisée, vous pouvez récupérer l'instance via la propriété $frontController de votre initialiseur.

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

Zend_Application_Resource_Modules

Zend_Application_Resource_Modules est utilisé pour initialiser les modules de votre application. Si votre module possède un fichier Bootstrap.php à sa racine, et que celui-ci contient une classe nommée Module_Bootstrap (où "Module" est le nom du module), alors celle-ci sera utiliser pour lancer votre module.

Par défaut, une instance de Zend_Application_Module_Autoloader sera créée pour le module en question, utilisant le nom du module et son dossier pour s'initialiser.

Note: Dépendance envers le contrôleur frontal
La ressource Modules possède une dépendance envers la ressource Front Controller. Vous pouvez bien sûr proposer votre propre implémentation de la ressource du contrôleur frontal, si tant est que sa classe se termine par "Frontcontroller", ou, si vous choisissez d'utiliser une méthode d'initialisation, celle-ci doit être "_initFrontController".

Exemple #4 Configurer les modules

Vous pouvez spécifier la configuration en utilisant le nom du module comme préfixe de section dans le fichier de configuration.

Par exemple, supposons que vous possédiez un module appelé "news". Voici des exemples INI et XML de fichiers de configuration pour ce module.

  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>

Exemple #5 Récupérer un bootstrap de module

Il peut être utile de pouvoir récupérer l'objet bootstrap de votre module, pour en exécuter par exemple des méthodes spécifiques, ou encore pour en récupérer l'autoloader. La méthode getExecutedBootstraps() peut être utilisée dans ce cas là, elle s'applique sur un objet ressource de modules.

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

Zend_Application_Resource_Session

Zend_Application_Resource_Session est utilisé pour configurer Zend_Session et éventuellement un support de sauvegarde sessions (SaveHandler).

Pour créer un support de sauvegarde session, passez la clé saveHandler (case insensitive) à la ressource. La valeur d'une telle option peut être :

  • String  : cette chaîne indique le nom d'une classe implémentant Zend_Session_SaveHandler_Interface.

  • Array  : avec les clés "class" et optionnellement "options", indiquant une classe à instancier (implémentant Zend_Session_SaveHandler_Interface) et un tableau d'options à passer à son constructeur.

  • Zend_Session_SaveHandler_Interface : un objet implémentant cette interface.

Toute autre option non reconnue sera alors passée à Zend_Session::setOptions() pour configurer Zend_Session.

Exemple #6 Exemple de ressource session

Voici un fichier INI permettant de configurer une session via la ressource. Il affecte des options à Zend_Session et configure une instance de Zend_Session_SaveHandler_DbTable.

  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"

Note: Configurez votre base de données avant !
Si vous configurez le gestionnaire Zend_Session_SaveHandler_DbTable, vous devez configurer votre base de données avant. Pour cela, servez vous de la ressource Db et assurez vous que la clé "resources.db" apparaît bien avant la clé "resources.session". Vous pouvez aussi utiliser votre propre ressource qui initialise la base de données et affecte l'adaptateur Zend_Db_Table par défaut.

Zend_Application_Resource_View

Zend_Application_Resource_View peut être utilisée pour configurer une instance Zend_View instance. Les clés de configurations sont celles de Zend_View.

Dès que l'instance est configurée, ceci crée une instace de Zend_Controller_Action_Helper_ViewRenderer et enregistre le ViewRenderer avec Zend_Controller_Action_HelperBroker - à partir duquel vous pourrez le récupérer plus tard.

Exemple #7 Exemple de configuration d'une ressource de vue

Voici un extrait de configuration INI montrant comment configurer une ressource de vue.

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

Fonctionnalités principales
blog comments powered by Disqus

Select a Version

Languages Available

Components

Search the Manual