Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour, voici le code classique que je dois appeler dans des méthodes de mes classes métier:
function toto() { //global $config; $db = Zend_Db::factory($config->database); ..... }
Sachant qu'il est hors de question d'utiliser $config en global et que $config est un objet Zend_Config:
$config = new Zend_Config( array( 'database' => array( 'adapter' => 'Mysqli', 'params' => array( 'dbname' => 'ma-database', 'username' => 'root', 'password' => '', ) ) ));
Ma question est la suivante:
Dois je mettre $config dans le registre:
Zend_Registry::set('config', $config);
Puis:
function toto() { $db = Zend_Db::factory(Zend_Registry::get('config')->database); }
... ou bien y a t-il une méthode plus propre?
Dernière modification par dquintard (16-12-2008 17:21:47)
Hors ligne
Non il est usuel de partager sa config dans le registre.
Si tu utilises MVC ZF, tu peux aussi jouer avec $fc->setParam('config', $config);
Puis, depuis une action : $this->getInvokeArg('config');
Le dispatcheur et le routeur sont aussi au courant de ces paramètres là.
Hors ligne
Ok merci.
Quelle est la méthode la plus courante?
Sachant que c'est quand même une problématique classique.
Hors ligne
Juste une question annexe: pourquoi la config n'est pas statique comme le registre?
Il aurait été plus prtatique de faire
Zend_config::get('database'); sans être obligé de passer par Zend_Registry.
Hors ligne
dquintard a écrit:
Juste une question annexe: pourquoi la config n'est pas statique comme le registre?
Il aurait été plus prtatique de faire
Zend_config::get('database'); sans être obligé de passer par Zend_Registry.
tu peux avoir plusieurs fichiers de config ?
Dernière modification par etaty (16-12-2008 19:08:25)
Hors ligne