Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 13-03-2010 01:03:59

Stormfaint
Nouveau membre
Date d'inscription: 20-04-2009
Messages: 9

[Résolu] Mon Bootstrap de module n'a aucun effet, que faire ?

Bonjour à tous smile

Après avoir fait un site en me formant sous Zend 1.7, l'été dernier environ. Me revoilà sur le framework Zend pour attaquer un nouveau projet assez gros.

Depuis ce matin, j'ai ingurgité pas mal de tutos avec de familiariser avec ce nouveau Zend. Je suis parti de la 1.10, et j'ai décidé, non sans mal au début, de le complet avec Doctrine (au passage si certains d'entres vous ont un joli tuto exhaustif sur YAML, je suis preneur...).

J'ai cependant un problème avec mon application modulaire. En effet les Bootstrap de module, peut importe ce que j'y mets dedans, il ne se passe rien. Il me semble pourtant avoir bien préciser ce qu'il y avait à préciser, notamment dans le application.ini

La fatigue n'aidant pas, je viens vers vous afin de m'éclairer un peu mes lanternes...

Déjà, voici un aperçu de mon architecture :

http://img696.imageshack.us/img696/3364/capturedcran20100313005.png

Mon index.php qui est dans mon dossier public :

Code:

<?php

// Définition de variables
defined('APPLICATION_PATH')
    || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));
    
defined('APPLICATION_ENV')
    || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production'));
    
defined('LIBRARY_PATH')
    || define('LIBRARY_PATH', realpath(dirname(__FILE__) . '/../library'));
    
// On charge la librairie
set_include_path(implode(PATH_SEPARATOR, array(
    realpath(LIBRARY_PATH),
    get_include_path()
)));

// Création de l'application
require_once 'Zend/Application.php'; 
$application = new Zend_Application(
    APPLICATION_ENV, 
    APPLICATION_PATH . '/configs/application.ini'
);

// Chargement des ressources
$bootstrap = $application->getBootstrap()->bootstrap('defaultNamespace')
    ->bootstrap('doctrine')
    ->bootstrap('locale')
    ->bootstrap('layout')
    ->bootstrap('view')
    ->bootstrap('mail');
    
// Lancement de l'application
$application->run(); 

?>

Mon Bootstrap.php principal :

Code:

<?php
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
    protected function _initDefaultNamespace(){
        $this->bootstrap('frontcontroller');
        $fc = $this->getResource('frontcontroller');
        $defaultModule = $fc->getControllerDirectory($fc->getDefaultModule());
        
        new Zend_Application_Module_Autoloader(array(
                'namespace' => '', 
                'basePath'  => APPLICATION_PATH . $defaultModule,
            ));
    }
    
    protected function _initView(){
        $pluginView = $this->getPluginResource('view');
        $view = $pluginView->getView();
        $view->doctype('XHTML1_STRICT');
        $view->addHelperPath(APPLICATION_PATH . '/views/helpers');
        $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('ViewRenderer');
        $viewRenderer->setView($view);
        return $view;
    }
    
    protected function _initLayout(){
        $layout = $this->getPluginResource('layout')->getLayout();
        $fc = $this->getResource('frontcontroller');
          $layout->setLayoutPath($fc->getModuleDirectory() . $layout->getLayoutPath());
          return $layout;
    }
    
    protected function _initDoctrine(){
        require_once(LIBRARY_PATH . '/Doctrine/Doctrine.php');
        spl_autoload_register(array('Doctrine', 'autoload'));

        $autoloader = Zend_Loader_Autoloader::getInstance();
        $autoloader->pushAutoloader(array('Doctrine', 'autoload'));

        $doctrineConfig = $this->getOption('doctrine');
        Doctrine::loadModels($doctrineConfig['models_path']);
        $connection = Doctrine_Manager::connection($doctrineConfig['connection_string']);
        $connection->setAttribute(Doctrine::ATTR_VALIDATE, Doctrine::VALIDATE_ALL);
        $connection->setAttribute(Doctrine::ATTR_AUTOLOAD_TABLE_CLASSES, true);
        
        return $connection;
    }

}

Mon application.ini (j'ai viré 2/3 trucs pour simplifier):

Code:

[production]
phpSettings.display_startup_errors = 0
phpSettings.display_errors = 0
 
phpsettings.date.timezone = "Europe/Paris"

includePaths[] = LIBRARY_PATH
includePaths[] = APPLICATION_PATH "/models"
includePaths[] = APPLICATION_PATH "/models/generated"

autoloadernamespaces[] = "Common_"

bootstrap.path  = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"

resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"

resources.frontController.moduleControllerDirectoryName = "controllers"
resources.frontController.defaultControllerName = "index"
resources.frontController.defaultAction = "index"
resources.frontController.defaultModule = "frontend"
resources.frontController.throwexceptions = false

resources.modules[] = ""

resources.view.encoding = "UTF-8"
resources.view.basePath = APPLICATION_PATH "/views/scripts"

resources.layout.layout = "layout"
resources.layout.layoutPath = "/views/layouts"

;Locale

;Mail

;Doctrine

;Erreurs

Et enfin mon Bootstrap qui ne "répond pas", rien de plus classique, j'y mets ce que je veux dedans, rien ne se passe :

Code:

<?php
class Backend_Bootstrap extends Zend_Application_Module_Bootstrap{}

Voilà, voilà. Merci d'avance smile

Dernière modification par Stormfaint (13-03-2010 20:23:47)

Hors ligne

 

#2 13-03-2010 07:05:41

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

Re: [Résolu] Mon Bootstrap de module n'a aucun effet, que faire ?

si j'me souviens bien, tu dois préciser quel modules sont a bootstrapper

Code:

resources.modules.monModule = "CheminVersLeDitModule"

Hors ligne

 

#3 13-03-2010 14:08:50

Stormfaint
Nouveau membre
Date d'inscription: 20-04-2009
Messages: 9

Re: [Résolu] Mon Bootstrap de module n'a aucun effet, que faire ?

Bonjour,

Alors j'ai essayé, et toujours rien.

Je précise, que le controller et ma vue de mon module "backend", celui dont le Bootstrap est "inactif" fonctionne très bien.

Hors ligne

 

#4 13-03-2010 20:23:19

Stormfaint
Nouveau membre
Date d'inscription: 20-04-2009
Messages: 9

Re: [Résolu] Mon Bootstrap de module n'a aucun effet, que faire ?

Ok, c'est clos.

J'avais mal pigé en fait le chargement de Ressources. Il me manquait la ressource "modules" vu que je voulais charger individuellement chaque ressources, sans charger les inutiles. Mais en fait ça sert à rien c'est déjà géré.

Mais bon au final ça m'avance pas des masses car les Bootstrap de modules sont toujours chargés, dommage.

Hors ligne

 

#5 13-03-2010 22:49:08

mikaelkael
Administrateur
Lieu: Donges
Date d'inscription: 18-06-2007
Messages: 1176
Site web

Hors ligne

 

#6 14-03-2010 09:03:36

Stormfaint
Nouveau membre
Date d'inscription: 20-04-2009
Messages: 9

Re: [Résolu] Mon Bootstrap de module n'a aucun effet, que faire ?

Merci pour ces liens !

J'en avais déjà lu 2/3, et j'ai d'ailleurs mis en place l'idée de binarykitten qui fonctionne à la perfection smile

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