Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 10-12-2009 16:46:20

jfrag
Membre
Date d'inscription: 13-11-2009
Messages: 37

Application modulaire bootstrap

Bonjour,

J'essaie de faire une application modulaire avec un bootstrap par module.

Mon front controller voit bien mes 2 modules, ils fonctionne tous les deux a une exception près !
Le bootstrap du module ne ce charge pas !!?

pourtant mon bootstrap herite bien de la class Zend_Application_Module_Bootstrap

D'après les différent tuto que j'ai lu il faut activer le Zend_Application_Resource_Modules grâce à : resources.modules[] = "" (à mettre dans le fichier ini).

voici mon bootstrap de base:

Code:

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
    
    public function run()
    {
        Zend_Registry::set('config', new Zend_Config($this->getOptions()));
        parent::run();
    }
    
    protected function _initDefaultNamespace()
    {
        $this->bootstrap('frontcontroller');
        $fc = $this->getResource('frontcontroller');
        $defaultModule = $fc->getControllerDirectory($fc->getDefaultModule());
        new Zend_Application_Module_Autoloader(array(
            'namespace' => '', // pas de namespace
            'basePath' => APPLICATION_PATH . $defaultModule,
        ));
    }

}

et mon fichier de conf :

Code:

[production]
phpSettings.display_startup_errors = 0
phpSettings.display_errors = 0
includePaths.library = APPLICATION_PATH "/../library"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"

;DECLARATION APP MODULAIRE
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.modules[] = ""
resources.frontController.defaultControllerName = "index"
resources.frontController.defaultActionName = "index"

;PAS NECESSAIRE CAR APPLICATION MODULAIRE
;resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"

;DECLARATION LAYOUT PAR MODULE
resources.layout.layout = "layout"

Merci

Hors ligne

 

#2 10-12-2009 18:10:33

yvann
Membre
Date d'inscription: 24-07-2008
Messages: 81

Re: Application modulaire bootstrap

jfrag a écrit:

Mon front controller voit bien mes 2 modules, ils fonctionne tous les deux a une exception près !
Le bootstrap du module ne ce charge pas !!?

Qu'entends tu par "Le bootstrap du module ne ce charge pas" ? Tu es au courant que les 2 bootstraps seront utilisés ?
Peux-tu préciser que je puisse regarder ?

Hors ligne

 

#3 11-12-2009 09:18:19

jfrag
Membre
Date d'inscription: 13-11-2009
Messages: 37

Re: Application modulaire bootstrap

bah le bootstrap général ce charge mais pas celui du module

Hors ligne

 

#4 11-12-2009 09:28:39

Delprog
Administrateur
Date d'inscription: 29-09-2008
Messages: 670

Re: Application modulaire bootstrap

Salut,

Tu peux nous montrer le bootstrap du module en question ?


A+ benjamin.


http://www.anonymation.com/ - anonymation - Studio de création.
http://code.anonymation.com/ - anonymation - blog - développement et architecture web

Hors ligne

 

#5 11-12-2009 09:39:12

jfrag
Membre
Date d'inscription: 13-11-2009
Messages: 37

Re: Application modulaire bootstrap

Code:

<?php

class Admin_Bootstrap extends Zend_Application_Module_Bootstrap
{
    public function __construct($application) 
    { 
        parent::__construct($application); 
        Zend_Debug::dump('cool');
        echo 'ICI';
    }
    
    
    protected function _initViewHelpers()
    {
        $this->bootstrap('layout');
        Zend_Debug::dump('encule');
        $layout = $this->getResource('layout');
        $view = $layout->getView();
        $view->doctype('XHTML1_STRICT');
        $view->headMeta()->appendHttpEquiv('Content-Type', 'text/html;charset=UTF-8');
        $view->headTitle()->setSeparator(' / ');
        $view->headTitle('Ecia');
        $view->headLink()->appendStylesheet('/css/style.css');
        Zend_View_Helper_PaginationControl::setDefaultViewPartial('pagination.phtml');
        
    }
    
    protected function _initDb()
    {
        $configDb = new Zend_Config($this->getOptions());
        try{  
             $db = Zend_Db::factory($configDb->resources->db);
             $db->setFetchMode(Zend_Db::FETCH_OBJ);
             Zend_Db_Table::setDefaultAdapter($db);
             
             $db->getConnection();
         }catch ( Exception $e ) {
             exit( $e -> getMessage() );  
         }
               
         Zend_Registry::set('db', $db );
         $db->query('SET NAMES UTF8');
         return $db;
    }
    
    protected function _initNavigation()
    {
        $view = $this->bootstrap('layout')->getResource('layout')->getView();
        $config = new Zend_Config_Xml(APPLICATION_PATH . '/configs/navigation.xml', 'nav');
        $view->navigation(new Zend_Navigation($config));
    }
    
    protected function _initSession()
    {
        Zend_Session::start();
    }

}

lorsque je fais un getExecutedBootstraps();

il me retourne un tableau d'objet vide :

Code:

object(ArrayObject)#5 (1) {
  ["storage":"ArrayObject":private] => array(0) {
  }
}

Hors ligne

 

#6 11-12-2009 10:20:43

jfrag
Membre
Date d'inscription: 13-11-2009
Messages: 37

Re: Application modulaire bootstrap

J'ai trouvé pourquoi mon boostrap de module n'etait pas chargé !!

dans mon bootstrap principal je recuperé une instance du frontController et ca faisait tout planté :

Code:

protected function _initGetFront(){
        $frontController = Zend_Controller_Front::getInstance();
        
    }

mais alors maintenant c'est vraiment bizarre car que je soit dans le module admin ou default il me charge le bootstrap admin !! je n'y comprend plus rien

Hors ligne

 

#7 11-12-2009 11:15:47

jfrag
Membre
Date d'inscription: 13-11-2009
Messages: 37

Re: Application modulaire bootstrap

Je crois que je vais devenir fou !!

lorsque j'accede a un module le framework defini toute mes route pour les 2 modules !! (je trouve completement con)

Il me charge tous les bootstraps (exemple j'accede au module admin il me charge aussi le bootstrap du module default) ou est l'interet d'avoir un bootstrap par module ??

dernier point impossible d'atteindre mon layout dans le bootstrap de mon module pour definir le doctype ou le headtitle !!

Je commence a me psé des question sur l'optimisation du framework car il charge tout et n'importe quoi

Hors ligne

 

#8 13-12-2009 18:31:17

yvann
Membre
Date d'inscription: 24-07-2008
Messages: 81

Re: Application modulaire bootstrap

jfrag a écrit:

Je crois que je vais devenir fou !!

lorsque j'accede a un module le framework defini toute mes route pour les 2 modules !! (je trouve completement con)

Il me charge tous les bootstraps (exemple j'accede au module admin il me charge aussi le bootstrap du module default) ou est l'interet d'avoir un bootstrap par module ??

dernier point impossible d'atteindre mon layout dans le bootstrap de mon module pour definir le doctype ou le headtitle !!

Je commence a me psé des question sur l'optimisation du framework car il charge tout et n'importe quoi

yvann a écrit:

jfrag a écrit:

Mon front controller voit bien mes 2 modules, ils fonctionne tous les deux a une exception près !
Le bootstrap du module ne ce charge pas !!?

Qu'entends tu par "Le bootstrap du module ne ce charge pas" ? Tu es au courant que les 2 bootstraps seront utilisés ?
Peux-tu préciser que je puisse regarder ?

C'est ce que je voulais dire par cette phrase. Et ce n'est pas "complètement con", ce n'est juste pas fait pour la situation que tu décris.

Hors ligne

 

#9 14-12-2009 07:08:58

3uclide
Membre
Date d'inscription: 09-08-2008
Messages: 194

Re: Application modulaire bootstrap

Pour lancer le bootstrap situé à la racine de ton module et nommé Bootstrap.php (Module_Bootstrap)

Code:

resources.modules.monmodule1 = "CheminVersLeModule1"
resources.modules.monmodule2 = "CheminVersLeModule2"
resources.modules.monmodule3 = "CheminVersLeModule3"

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages