Zend Framework : utiliser application.ini pour stocker vos paramètres

Comme vous le savez sans doute, le Zend Framework utilise un fichier de configuration nommé application.ini pour stocker ses paramètres. Vous pouvez l'utiliser également pour vos paramètres personnalisés.

Pour cela vous pouvez créer des entrées supplémentaires dans le fichier .ini. Pour éviter une collision avec d'autres paramètres, il est conseillé d'utiliser un préfixe. Vous pouvez par exemple utiliser l'espace de nom de votre application.

Supposons que ce dernier est My_ et que vous avez besoin d'un paramètre pour mémoriser l'adresse E-mail du support. Votre fichier ini pourrait alors ressembler à ceci :

[production]
 
appnamespace = "My_"
 
[..]
 
my.support.email = "john.doe@somewhere.com"

Pour récupérer vos paramètres dans un contrôleur, vous pouvez utiliser le code suivant :

<?php
// Récupère le bootstrap
$bootstrap $this->getInvokeArg('bootstrap');

// Retrouve l'espace de nom de l'application.
// On supprime l'underscore en préfixe et on passe en minuscules
// My_ -> my
$ns strtolower(trim($bootstrap->getAppNamespace(), '_'));

// Récupère les paramètres sous la forme d'un tableau
$config $bootstrap->getOption($ns);

$supportEmail $config['support']['email'];
?>

Pour partager ce code entre vos différents contrôleurs, il faut créer une aide d'action :

<?php
class My_Controller_Action_Helper_Config
    
extends Zend_Controller_Action_Helper_Abstract
{
    
/**
     * @return array
     */
    
public function direct()
    {
        
$bootstrap $this->getActionController()->getInvokeArg('bootstrap');
        
$ns strtolower(trim($bootstrap->getAppNamespace(), '_'));
        return 
$bootstrap->getOption($ns);
    }
}
?>

Vous pourrez ainsi accéder à la configuration avec le code suivant :

<?php
$config 
$this->_helper->config();
?>

Etiquettes:

Add new comment