Bonjour tous le monde,
La question doit être redondante, mais je suis bloqué depuis plusieurs jours sur le chargement de mes classes.
Mon architecture est similaire à celle proposé par julien : http://julien-pauli.developpez.com/t...d-application/
En local (sous xampp 1.7.3 / PHP 5.3), je n'ai aucun souci, tout tourne bien.
Par contre, lorsque j'upload le tout en prod, sur une Fedora / php 5.2, mes classes ne sont plus retrouvées, et la PHP me lance une erreur:
Code x : Sélectionner tout - Visualiser dans une fenêtre à part Fatal error: Class 'Default_Model_DbTable_Businessunit' not found in /home/zend/application/modules/default/controllers/MenuController.php on line 9
Voici le contenu de mon fichier de conf: application.ini
Voici mon fichier index.php
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
44
45
46
47 [production] # initilisation du report d'erreurs pour le mode production phpSettings.display_startup_errors = 0 phpSettings.display_errors = 0 #definition de la timezone phpSettings.date.timezone = "Europe/Paris" # Include path includePaths.library = APPLICATION_PATH "/../library" # Bootstrap bootstrap.path = APPLICATION_PATH "/Bootstrap.php" bootstrap.class = "Bootstrap" #initialisation des modules resources.frontController.moduleDirectory = APPLICATION_PATH "/modules" resources.modules[] = "" # Layout resources.layout.layout = "default" resources.layout.layoutPath = APPLICATION_PATH "/modules/default/layouts/scripts" # Views resources.view.encoding = "UTF-8" # connexion à une base de données resources.db.adapter = "pdo_mysql" resources.db.params.host = "localhost" resources.db.params.username = "xxxxx" resources.db.params.password = "xxxxxxxx" resources.db.params.dbname = "xxxxxxx" resources.db.isDefaultTableAdapter = true [staging : production] [testing : production] phpSettings.display_startup_errors = 1 phpSettings.display_errors = 1 [development : production] # initilisation du report d'erreurs pour le mode developpement phpSettings.display_startup_errors = 1 phpSettings.display_errors = 1
Mon fichier Bootstrap.php principal
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 <?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(), ))); /** Zend_Application */ require_once 'Zend/Application.php'; require_once 'Zend/Loader/Autoloader.php'; Zend_Loader_Autoloader::getInstance(); //On lance la session require_once 'Zend/Session.php'; Zend_Session::start(); // Create application, bootstrap, and run $application = new Zend_Application( APPLICATION_ENV, APPLICATION_PATH . '/configs/application.ini' ); $application->bootstrap() ->run();
J'ai deux modules "default" et "extranet" dans lesquels se trouvent un fichier fichier Boostrap.php.
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66 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 _initAutoload() { $autoloader = new Zend_Application_Module_Autoloader(array( 'namespace' => '', 'basePath' => APPLICATION_PATH . '/modules/default', )); return $autoloader; } protected function _initSession() { try { $sessionAdmin = new Zend_Session_Namespace('Admin'); } catch (Zend_Session_Exception $e) { echo "Cannot instantiate this namespace "; } return $sessionAdmin; } protected function _initView() { $layout = $this->bootstrap('layout')->getResource('layout'); $view = $layout->getView(); $view->addHelperPath('ZendX/JQuery/View/Helper/', 'ZendX_JQuery_View_Helper'); $viewRenderer = new Zend_Controller_Action_Helper_ViewRenderer(); $viewRenderer->setView($view); Zend_Controller_Action_HelperBroker::addHelper($viewRenderer); $view->jQuery()->setLocalPath('/js/jQuery/js/jquery-1.4.2.min.js') ->setUiLocalPath('/js/jQuery/js/jquery-ui-1.8.custom.min.js') ->addStyleSheet('/js/jQuery/css/jquery-ui-1.8.custom.css'); } protected function _initViewHelpers() { $layout = $this->bootstrap('layout')->getResource('layout'); $view = $layout->getView(); $view->headTitle('Titre'); $view->headTitle()->setSeparator(' - '); $view->doctype('XHTML1_STRICT'); $view->headMeta()->appendHttpEquiv('Content-Type', 'text/HTML; charset=UTF-8') ->appendHttpEquiv('Content-Language', 'fr-FR'); $view->headScript()->appendFile('/ckeditor/ckeditor.js') ->appendFile('/ckeditor/adapters/jquery.js') ->appendFile('/js/my.js'); } }
et
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 class Default_Bootstrap extends Zend_Application_Module_Bootstrap { }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 class Extranet_Bootstrap extends Zend_Application_Module_Bootstrap { }
Voila, j'espère que vous allez pouvoir m'aider à résoudre ce problème, qui est certe redondant mais que je n'arrive pas à résoudre, je pense avoir fait comme il faut, ça tourne en local, mais pas sur la machine de prod qui est une fédora.
Merci!
Partager