Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour a tous,
Quand je charge Zend_Application, j'ajoute en parametre le fichier application.ini qui contient tous les parametres.
Voici le code dans index.html
$application = new Zend_application( APPLICATION_ENV, APPLICATION_PATH . '/configs/application.ini' );
Dans le fichier application.ini
resources.db.adapter = "MYSQLI" resources.db.params.host ="localhost" ....
Maintenant, dans le Bootstrap ou un controller, je voudrais recuperer "resources.db"
Je sais qu'on sais le recuperer par un Zend_Config mais comment est-ce possible de le recuperer dans une variable déjà existante ?
Comme Zend_DB_Table sait l'utiliser sans le specifier, il doit bien avoir un 'truc'
Merci,
gilles
Hors ligne
Si Zend_db_Table sait récupérer cette valeur c'est parce qu'elle est passé en paramètre dans Zend_Application.
Voici le cheminement :
1/ Tu instancies Zend_Application avec le application.ini en paramètre.
2/ Zend_Application appelle la methode factory Zend_Db avec en paramètre un tableau contenant les paramètre de la base de donnés issu de application.ini
Maintenant si tu veux récupérer "resources.db" sans appeller Zend_Config, tu peux ajouter ceci à Bootstrap.php:
public function _initDatabase() { $this->bootstrapDb(); $db = $this->getResource('db'); Zend_Registry::set("db", $db); }
Et ensuite tu l'appelle ou tu veux dans ton application:
Zend_Registry::get("db", $db);
Hors ligne
Il faut noter que tu peux également récupérer les ressources depuis un contrôleur avec :
$bootstrap = $this->getInvokeArg('bootstrap'); $db = $bootstrap->getResource('db');
Dernière modification par mdelanno (12-10-2009 21:22:42)
Hors ligne