Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonsoir,
Je souhaiterais savoir comment manipuler un fichier de configuration avec des "constantes" accessible via mes modeles, mes controller, etc
Je m'explique:
Je souhaiterais avoir, dans un fichier de config (array php, ini, ...) une liste de clé-valeur pour, par exemple, gerer un nombre de ligne de un tableau (nb_comment_page = 10, pour avoir 10 resultat par page OU nb_jours_valide=30 pour afficher des commentaire de moins de 30j)
Ces parametres doivent être accessible relativement partout (que ce soit dans un controlleur, ou dans un modele TableGateway, même si pour l'instant, je n'en aurais besoin que dans mes modeles...)
Avec ZF1, pas de pb, je mettais une methode _initConfig() dans le bootstrap et j'enregistrer mon objet config via ZendRegistry::set('config', $config) et je pouvais ainsi le recuperer partout via $config = Zend_Registry::get('config) (puis $config->nb_comment_page me retourner ma valeur 10.
Comment puis-je avoir un equivalent avec ZF2 ?
Merci d'avance
Dernière modification par RomainB (11-12-2012 01:13:25)
Hors ligne
Salut, tu peux le faire via le fichier module.config.php de la même manière que tu y déclares les paramètres de connexion à la base de données etc ...
Hors ligne
Orkin a écrit:
Salut, tu peux le faire via le fichier module.config.php de la même manière que tu y déclares les paramètres de connexion à la base de données etc ...
Merci pour ta réponse
Et comment j'y accède par la suite ?
J'ai trouvé ça, que je met dans mon Module.php:
[lang=php]$config = $this->getServiceLocator()->get('Config');
puis je l'injecte dans mes controllers (setConfig() définit dans mon controller hérité par mes autres controllers)
[lang=php]$controller->setConfig($config)
A priori, ca fonctionne bien (j'arrive bien à récupérer mes paramètres).
Est-ce la bonne façon de faire ?
Hors ligne
Ca me semble pas mal, enfin il y a de l'idée mais je pense que le mieux c'est de passer par une factory et de créer une classe option avec juste ce dont tu as besoin avec getter/setter comme ça tu ne prends pas de risque de modifier la configuration de base de l'application.
De cette façon tu vas déclarer ta factory dans ton Module.php et y mettre un alias tu pourras ensuite le récupérer partout où tu auras accès au service manager via un get('alias')
Hors ligne
Pages: 1