Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
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:
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:
// 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:
[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:
<?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
Hors ligne