2010-09-01 9 views
0

J'ai un application.ini comme celui-ciComment charger plus de ressources qui sont hors de l'application env?

[production] 
phpSettings.display_startup_errors = 1 
phpSettings.display_errors = 1 
includePaths.library = APPLICATION_PATH "/../library" 
bootstrap.path = APPLICATION_PATH "/Bootstrap.php" 
bootstrap.class = "Bootstrap" 
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules" 
resources.modules[] = "" 

[staging : production] 

[testing : production] 
phpSettings.display_startup_errors = 1 
phpSettings.display_errors = 1 

[development : production] 
phpSettings.display_startup_errors = 1 
phpSettings.display_errors = 1 

[database] 
resources.db.adapter    = PDO_MYSQL 
resources.db.params.dbname   = "ccgss" 
resources.db.params.username  = "root" 
resources.db.params.password  = "" 
resources.db.params.hostname  = "localhost" 
resources.db.isDefaultTableAdapter = true 

[layout] 
layoutPath = APPLICATION_PATH "/layouts" 
layout = default 
contentKey = "content" 

Par défaut, zend framework charge la section [production]. Comment charger automatiquement les autres sections?

De plus

Comment puis-je modifier les environnements entre staging, testing, development et?

Répondre

1

Pour passer votre environnements d'applications entre la production, le développement, etc. simplement définir la variable à la valeur appropriée dans votre fichier .htaccess:

SetEnv APPLICATION_ENV development 

Si vous souhaitez charger automatiquement votre propre resource plugins à partir du bootstrap , vous pouvez le faire simplement en clouant sur le tableau resources:

resources.myplugin.param1 = "myvalue" 

ne pas oublier d'ajouter l'espace de noms de votre plugin et le chemin du répertoire à la valeur pluginsPath ainsi, ou ZF ne saura pas où chercher:

pluginPaths.My_Resource_Namespace = "My/Namespace/Folder" 

Enfin, si vous voulez acces valeurs dans votre fichier de configuration sans utiliser un plugin resources, vous pouvez charger le fichier en utilisant la classe Zend_Config_Ini:

$config = new Zend_Config_Ini('/path/to/config.ini', 'staging'); 
1

section Zend Framework de production "charges parce que votre environnement est à la « production » dans votre index.php

defined('APPLICATION_ENV') 
|| define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production')); 

donc, pour changer votre environnement à quelque chose othe r que la production, vous devez simplement changer la valeur de la variable APPLICATION_ENV (vous pouvez le faire dans .htaccess par exemple). En outre, vous n'avez probablement pas besoin de sections séparées pour la base de données et la mise en page, il suffit de les inclure dans la section 'production'. Si vous utilisez des sections distinctes pour eux, ils ne sont pas analysés car seule la section d'environnement actuelle est analysée, comme vous pouvez le voir à partir de cette ligne

$application = new Zend_Application(
    APPLICATION_ENV, 
    APPLICATION_PATH . '/configs/application.ini' 
);