Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 13-01-2012 10:28:16

schwarzy2
Nouveau membre
Lieu: proche de Paris
Date d'inscription: 05-01-2012
Messages: 8
Site web

[Autoloader][ZF 1.11] Autoloader avec modules

Bonjour à tous,

Je ne réussis pas à autoloader mes modèels, forms et controlleurs , mon architecture est celle-ci:
un module par défaut: default(j'ai pas fait dans l'original)
et trois autres modules maq et pvi et ria.

Comme le montre mon schéma:
http://zakor.dyndns.org:8081/zf-images/arbo_fermee.JPG

Ma librairie Zend Framework se trouve à la racine de mon serveur Web, car je l'utilise pour différents projets.
Voici donc mon fichier public/index.php:

Code:

// Define path to application directory
defined('APPLICATION_PATH')
    || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));

// Define application environment
defined('APPLICATION_ENV')
    || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production'));

/*
 * // Ensure library/ is on include_path
*/

set_include_path(implode(PATH_SEPARATOR, array(
    realpath(APPLICATION_PATH . '/../library'),
    get_include_path(),
)));


set_include_path(get_include_path() . PATH_SEPARATOR . APPLICATION_PATH);
//echo get_include_path();

/** Zend_Application */
require_once 'Zend/Application.php';

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

//echo get_include_path();

$application->bootstrap()
            ->run();

Mon application.ini:

Code:

[production]
;Bootstrap
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"

;initialisation des modules
resources.frontController.controllerDirectory = APPLICATION_PATH "/modules/default/controllers"
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.modules[] = 
resources.frontController.defaultModule = "default"

; AJOUT POUR LE LAYOUT
resources.layout.layout = "layout"
resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts"
[staging : production]

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

[development : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
resources.frontController.params.displayExceptions = 1

et mon Bootstrap:

Code:

<?php

include_once('plugins/appli.php');

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
    const   DS          = '';
    const   URL_MAIN_REL   = '';
    const   URL_MAIN_ABS   = '';
    const   URL_MAIN_ROOT   = '';
    const   PATH_ROOT   = '';
    
    public function run()
    {
        // Cela permet d'avoir le fichier de configuration disponible depuis n'importe ou dans l'application.
        Zend_Registry::set('config', new Zend_Config($this->getOptions()));
        //$test=Zend_Registry::isRegistered('appli');
        
        define ('URL_MAIN_REL',  rtrim(dirname($_SERVER['PHP_SELF']), '/\\').'/');
        define ('URL_MAIN_ABS',  'http://'.$_SERVER['HTTP_HOST'].URL_MAIN_REL);
        define ('URL_MAIN_ROOT',  'http://'.$_SERVER['HTTP_HOST'].dirname(URL_MAIN_REL));
        define ( 'DS' , DIRECTORY_SEPARATOR );
        define ( 'PATH_ROOT', dirname(dirname(__FILE__)) . DS );
        
        $front=Zend_Controller_Front::getInstance();
        //$front->addModuleDirectory(PATH_ROOT."application/modules");
        //$front->setModuleControllerDirectoryName('controllers');
        
        //$front->addModuleDirectory('modules');
        //$front=Zend_Controller_Front::getInstance();
        //$front->setParam('useDefaultControllerAlways', true);
       
        
         $front->registerPlugin(new AppliPlugin());
        
        parent::run();
    }

    protected function _initView()
    {
        // Initialisons la vue
        $view = new Zend_View();
        //$view->doctype('XHTML1_STRICT');
        $view->headTitle(' application');
        $view->setEncoding('UTF-8');
        // Ajoutons là au ViewRenderer
        $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper(
            'ViewRenderer'
        );
        $viewRenderer->setView($view);

        // Retourner la vue pour qu'elle puisse être stockée par le bootstrap
        return $view;
    }


    /**
    * Initialize session
    *
    * @return Zend_Session_Namespace
    */
    protected function _initSession()
    {
      // On initialise la session
      $session = new Zend_Session_Namespace('budget', true);
      return $session;
    }
    
// Initialisation d'un autoload pour une application sans module
    protected function _initAutoload()
    {
        new Zend_Application_Module_Autoloader(array(
                'namespace' => '',
                'basePath'  => APPLICATION_PATH,
        ));
    }
    
protected function _initDefaultNamespace()
    {
        $fc = $this->bootstrap('frontcontroller')->getResource('frontcontroller');
        $defaultModule = $fc->getControllerDirectory($fc->getDefaultModule());
        
        new Zend_Application_Module_Autoloader(array(
                'namespace' => '', // pas de namespace
                'basePath'  => APPLICATION_PATH . $defaultModule,
            ));
    }
   
    
}

Mais rien ne se charge. J'ai essayé différentes solutions trouvées sur Internet, ajouter des Bootstrap dans les modules, ajout de différentes fonctions dans mon Bootstrap....rien n'y fait.
Les éléments ne se chargent pas, j'y ai passé énormément de temps sans trouver la solution, et j'ai en plus l'impression que le mode de fonctionnement varie selon la version de ZF, du coup, je suis complètement paumée...si quelqu'un avait même un bout de réponse, ça m'aiderait grandement!

merci d'avance pour votre aide


Feel good, feel geek

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