2010-10-15 4 views
0

J'écris une application zend et j'essaie de garder la fonctionnalité aussi modulaire que possible. Fondamentalement, je veux déposer le dossier dans l'application et avoir une fonctionnalité instantanée.Zend application.ini resourse pour différents modules

Anywho; J'essaye de créer des liens de barre latérale de chaque module. La méthode que j'utilise est d'utiliser le bootstrap:

Voici la fonction dans mon fichier bootstrap. J'ai mis les routes dans une autre fonction.

public function _initNavigation() 
{ 
    $navigation = new Zend_Navigation(); 
    $navigation->addPages(
     array(
     array(
      'label' => 'Link Name', 
      'route' => 'routeA', 
      'class' => 'heading' 
     ), 
     array(
      'label' => 'Link Name', 
      'route' => 'routeA', 
      'params'=>array('param' => 'value'), 
     ), 
     array(
      'label' => 'Link Name', 
      'params'=>array('param' => 'value'), 
      'route' => 'routeA' 
     ) 
    ) 
); 

    $this->bootstrap('layout'); //this line giving error :(
    $layout = $this->getResource('layout'); 
    $view = $layout->getView(); 
    $view->navigation($navigation); 

L'erreur que je recevais était:

ressource correspondant à « layout » non trouvé

Après quelques headbang j'ai trouvé que je devais mettre le nom du module devant le resourse dans le fichier config/application.ini, par exemple:

moduleA.resources.layout.layoutPath = APPLICATION_PATH "/modules/moduleA/views/scripts" 

Maintenant, uestion: comment puis-je obtenir la ressource de mise en page en utilisant une seule ressource? c'est-à-dire sans spécifier le nom du module pour chaque nouveau module que j'utilise?

+0

Vous devez créer une réponse et la marquer comme la bonne réponse plutôt que d'éditer la question elle-même. –

+0

OK. Répondu avec réponse. Va le marquer comme la réponse dans deux jours. –

Répondre

2

répondit nouveau poste


Après beaucoup de googler (quand est-ce devenu pour remplacer « la recherche »?) Je suis tombé sur Leonard Dronkers' "Zend Framework Module Config The Easy Way".

Fondamentalement, ajoutez au fichier d'amorçage de votre module

/** 
* Load config.ini file for this module. 
*/ 
protected function _initModuleConfig() 
{ 
    // load ini file 
    $iniOptions = new Zend_Config_Ini(dirname(__FILE__) . '/configs/config.ini'); 

    // Set this bootstrap options 
    $this->setOptions($iniOptions->toArray()); 
} 

Et placer un fichier config.ini dans un dossier de configuration dans votre module (par exemple /modules/news/config/config.ini) et placez votre paramètres spécifiques du module là.

C'est tout. Fantastique!

Questions connexes