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

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
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
<?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();
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
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');
    }
 
}
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
class Default_Bootstrap extends Zend_Application_Module_Bootstrap
{
 
}
et

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!