Bonjour,
Je suis bloqué dans le développement d'un site Internet utilisant ZF 1.11, je dois faire un backoffice et un frontoffice. Dans un premier temps, j'ai fais le front, et tout fonctionne tres bien. Puis pour le backoffice, j'ai voulu utiliser les modules et c'est une autre histoire.
La documentation ZF est tres mal fichu car on ne comprend jamais si on doit travailler dans le fichier index.php (du dossier public), dans le bootstrap du dossier application ou ceux des modules ou enfin dans les controllers.
Mes problemes sont les suivants :
- Je ne peux pas recuperer les variables du bootstrap dans mon layout.phtml. Pourtant ca fonctionnait avant que j'implement les modules. Mais $this->layout()->variable renvoie toujours null
- Je ne peux pas acceder a mon action Index du controller Index dans le module Admin, j'ai ce message d'erreur.
Pour faire fonctionner les modules, voici comment mon fichier application.iniAn error occurred
Page not found
Exception information:
Message: Invalid controller specified (index)
Stack trace:
#0 E:\Servers\Zend\ZendServer\share\ZendFramework\library\Zend\Controller\Front.php(954): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))
#1 E:\Servers\Zend\ZendServer\share\ZendFramework\library\Zend\Application\Bootstrap\Bootstrap.php(97): Zend_Controller_Front->dispatch()
#2 E:\Servers\Zend\ZendServer\share\ZendFramework\library\Zend\Application.php(366): Zend_Application_Bootstrap_Bootstrap->run()
#3 E:\src\cedar.local\public\index.php(26): Zend_Application->run()
#4 {main}
Request Parameters:
array (
'module' => 'admin',
'controller' => 'index',
'action' => 'index',
)
J'ai supprimé le bootstrap de mon dossier application et j'ai deux bootstrap dans mes dossiers modules :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 [production] ;Debug Output phpSettings.display_startup_errors = 0 phpSettings.display_errors = 0 ;Include Path includePaths.library = APPLICATION_PATH "/../library" ;Modules resources.frontController.moduleDirectory = APPLICATION_PATH "/modules" resources.modules[] = resources.frontController.params.prefixDefaultModule = "1" resources.frontController.defaultModule = "default" # Front ;resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers" resources.frontController.params.displayExceptions = 0 # Layout resources.layout.layout = "layout" resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts/" ;view resources.view.encoding = "UTF-8" resources.view[] =
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 <?php // /application/modules/default/Bootstrap.php class Default_Bootstrap extends Zend_Application_Module_Bootstrap { protected function _initAutoload() { $autoLoader = new Zend_Application_Module_Autoloader( array( 'basePath' => APPLICATION_PATH, 'namespace' => '', 'resourceTypes' => array( 'form' => array( 'path' => 'forms/', 'namespace' => 'Form_',), 'validator' => array( 'path' => 'validators/', 'namespace' => 'Validate_',) , 'model' => array( 'path' => 'models/', 'namespace' => 'Model_'), )) ); // Return it so that it can be stored by the bootstrap return $autoLoader; } protected function _initMenus(){ $view = $this->getResource('view'); // Main Menu $menu = ($_SERVER['REQUEST_URI']=='/user/login') ?'user':''; if($menu=='') $menu = (substr($_SERVER['REQUEST_URI'], 1, 4)=='blog') ?'blog':''; $view->menu = $menu; // SubMenu $view->submenu = 'accueil'; $config = new Zend_Config_Ini(APPLICATION_INI, APPLICATION_ENV); $db = Zend_Db::factory($config->get('resources')->db); $rubriques = new Model_Rubriques($db); $view->rubriques = $rubriques->getAllNameToURL(); } }Merci d'avoir lu jusqu'ici et merci d'avance pour vos reponses.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 <?php // /application/modules/default/Bootstrap.php class Admin_Bootstrap extends Zend_Application_Module_Bootstrap { protected function _initAutoload() { // Add autoloader empty namespace $autoLoader = Zend_Loader_Autoloader::getInstance(); $autoLoader->registerNamespace('Application_'); // $resourceLoader = new Zend_Loader_Autoloader_Resource(array( 'basePath' => APPLICATION_PATH, 'namespace' => 'Admin_', 'resourceTypes' => array( 'form' => array( 'path' => 'forms/', 'namespace' => 'Form_',), 'validator' => array( 'path' => 'validators/', 'namespace' => 'Validate_',), 'model' => array( 'path' => 'modules/admin/models/', 'namespace' => 'Model_'), ))); // Return it so that it can be stored by the bootstrap return $autoLoader; } }
Partager