2010-01-04 3 views
1

J'ai écrit des ressources personnalisées pour mon bootstrap Zend_Application.Utilisation de application.ini pour configurer Zend_Application Bootstrap

En the manual le code suivant est donné pour les charger:

$application = new Zend_Application(APPLICATION_ENV, array(
    'pluginPaths' => array(
     'My_Resource' => APPLICATION_PATH . '/resources/', 
    ), 
    'resources' => array(
     'FrontController' => array(
      'controllerDirectory' => APPLICATION_PATH . '/controllers', 
     ), 
    ), 
)); 

Cela ne fait pas usage de la application.ini que je veux utiliser. Est-il possible de configurer complètement cela à partir de mon application.ini?

Ma solution finale: (avec l'aide de la réponse de Will):

  • créer un nouveau projet avec zf.sh créer projet (version 1.9.6)
  • font la classe suivante dans l'application /resources/Ftp.php

    class My_Resource_Ftp extends Zend_Application_Resource_ResourceAbstract 
    { 
        protected $_params = array(); 
        public function init() { 
         echo "init invoked"; 
         return array("hey"); 
        } 
    } 
    
  • Le application.ini suivant

    [production] 
    phpSettings.display_startup_errors = 0 
    phpSettings.display_errors = 0 
    includePaths.library = APPLICATION_PATH "/../library" 
    bootstrap.path = APPLICATION_PATH "/Bootstrap.php" 
    bootstrap.class = "Bootstrap" 
    
    pluginPaths.My_Resource = APPLICATION_PATH "/resources/" 
    resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers" 
    
    resources.ftp.username = "me" 
    
    
    [staging : production] 
    
    [testing : production] 
    phpSettings.display_startup_errors = 1 
    phpSettings.display_errors = 1 
    
    [development : production] 
    phpSettings.display_startup_errors = 1 
    phpSettings.display_errors = 1 
    

Répondre

1

Oui, il vous suffit d'utiliser le chemin de votre application.ini comme second argument au constructeur, par exemple:

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

Cette approche est le guide de démarrage rapide prend: http://framework.zend.com/manual/en/zend.application.quick-start.html

Dans votre fichier .ini alors vous ajouter des chemins de ressources comme:

pluginPaths.My_Resource = APPLICATION_PATH "/resources/" 
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers" 
+0

Merci pour la rép euh, mais ça ne marche pas. J'ai mis à jour ma question avec cet essai et l'erreur. –

+0

Pas tout à fait sûr du message d'erreur, j'essaierai de le déboguer moi-même plus tard, mais j'ai remarqué une erreur de copier/coller dans mon fichier .ini: il ne devrait pas y avoir de point après APPLICATION_PATH dans la ligne pluginPaths essayez-le sans ça. –

+0

Maintenant ça marche! Merci beaucoup! –

Questions connexes