Précédent   Forum des professionnels en informatique > PHP > Outils > Zend > Zend Framework > MVC
MVC Forum de support sur le développement d'applications de type modèle-vue-contrôleur avec Zend Framework ainsi que vos questions sur les plugins, les helpers etc. Avant de poster -> Cours MVC, FAQ ZF Controller
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/09/2011, 10h46   #1
Membre régulier
 
Homme Jordane
Étudiant
Inscription : février 2010
Messages : 59
Détails du profil
Informations personnelles :
Nom : Homme Jordane
Âge : 23
Localisation : France, Puy de Dôme (Auvergne)

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2010
Messages : 59
Points : 81
Points : 81
Par défaut Problème de chargement des models sous Linux.

Bonjour a tous.
J'ai créé une application avec ZF qui fonctionne correctement sous Windows.
J'ai donc essayé de l'installer sur mon serveur Apache sous linux et là problème : mon application ne trouve plus les classes du model. Comme si l'autoload ne fonctionné pas.

Mon architecture est la suivante.

Code :
1
2
3
4
5
6
7
8
9
 
application--
                |
                 controllers
                 forms
                 models--
                            |
                            DbTable
                            DbView
Je voudrais savoir si quelqu'un a une idée pourquoi ça marche sous Windows et pas sous Linux? Si ça vient de mon code? ou d'un module php à charger?

Si je rajoute des require_once() ça marche mais bon j'aimerais trouver une solution qui ne m'oblige pas à reprendre tous mes fichiers.

Je tiens a préciser que j'ai respecté la convention de nommage des classes (enfin je pense). Par exemple les classes qui sont dans DbTable commence par Application_Model_DbTable_nomdelaclasse.


Mon application.ini
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
phpSettings.display_startup_errors = 0
phpSettings.display_errors = 0
includePaths.library = APPLICATION_PATH "/../library"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
appnamespace = "Application"
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
resources.frontController.params.displayExceptions = 0
resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts/"
 
; Active la gestion des modules
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.modules[] =

Mon bootstrap
Code :
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
 
<?php
/**
 * Utilisé par la suite
 */
require_once 'plugins/function.php';//Diverse function
require_once 'plugins/Translator.php';
require_once 'plugins/Fpars.php';
 
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
	/**
	 * @var Zend_Controller_Front
	 */
	private $_frontController = null;
 
	public function __construct($application)
    {
    	parent::__construct($application);
 
    	$this->_frontController = Zend_Controller_Front::getInstance();
 
    	/**
		 * remplace certaine valeur du php.ini
		 */
		date_default_timezone_set('Europe/Paris');
 
 
		/**
		 * Force l'encodage en UTF-8
		 */
		setlocale(LC_ALL,"fr_FR.UTF-8");
		mb_internal_encoding('UTF-8');
		iconv_set_encoding("internal_encoding", "UTF-8");
		//header('Content-type: text/html; charset=iso-8859-1');
    }
    protected function _initView(){
    	$autoloader = Zend_Loader_Autoloader::getInstance();
    	$autoloader->registerNamespace('Alba_');
 
     	$viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
    	//$viewRenderer->setView(new Alba_View_Tidy());
    }
 
	/**
	 * Pour etre valide XHTML
	 */
	protected function _initDoctype()
    {
        $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
        $viewRenderer->initView();
		$viewRenderer->view->doctype('XHTML11');
    }
 
    protected function _initLib()
    {
    	$autoloader = Zend_Loader_Autoloader::getInstance();
    	$autoloader->registerNamespace('Alba_');
    }
 
	protected function _initNavigation()
	{
		$this->bootstrap('layout');
		$layout = $this->getResource('layout');
		$view = $layout->getView();             
		$config = new Zend_Config_Xml(APPLICATION_PATH . '/configs/navigation.xml', 'nav');
 
		$container = new Zend_Navigation($config);
 
		$view->navigation($container);
	}
 
	protected function _initpluginsdb()
    {
        $this->_frontController->registerPlugin(new Application_Plugin_Dbinit());
    }
 
    //copie la config dans le registre
	protected function _initConfig()
    {
        $config = new Zend_Config($this->getOptions());
        Zend_Registry::set('config', $config);
        $db = new Zend_Db_Adapter_Pdo_Mysql($config->resources->db->params);
        Zend_Db_Table::setDefaultAdapter($db);
        Zend_Registry::set('db', $db);
        return $config;
    }
 
 
    /**
	 * Démmare les acl
	 */
	protected function _initAcl()
    {
		$acl=new Alba_Acl();
		$this->_frontController->registerPlugin(new Alba_Acl_Auth($acl)) ;
 
		Zend_Registry::set('acl', $acl);
    }
 
 
?>
Mon index.php

Code :
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
<?php
 
defined('INSTALLATION_PATH')
    || define('INSTALLATION_PATH', realpath(dirname(__FILE__) . '/../'));
 
// 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') : 'development'));
 
// 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';
 
// Create application, bootstrap, and run
$application = new Zend_Application(
    APPLICATION_ENV,
    APPLICATION_PATH . '/configs/application.ini'
);
 
 
//n'affiches pas les erreurs de notice
error_reporting(E_ALL ^ E_NOTICE);
 
$application->bootstrap()
            ->run();
 
 ?>

Merci d'avance
Joauc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2011, 10h53   #2
Membre Expert
 
Avatar de gene69
 
Inscription : janvier 2006
Messages : 951
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : janvier 2006
Messages : 951
Points : 1 063
Points : 1 063
ya des liens symboliques?

que dit le debug de l'autoload?
__________________
PHP fait nativement la validation d'adresse électronique Vous êtes perdu en PHP? rassurez-vous ici (en)
Utilisez le bouton résolu!
gene69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2011, 11h19   #3
Membre régulier
 
Homme Jordane
Étudiant
Inscription : février 2010
Messages : 59
Détails du profil
Informations personnelles :
Nom : Homme Jordane
Âge : 23
Localisation : France, Puy de Dôme (Auvergne)

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2010
Messages : 59
Points : 81
Points : 81
J'ai fait un lien symbolique des fichiers du framework dans mon dossier library.

Je suis débutant avec zend je sais pas trop comment utilisé le débug avec Zend
Joauc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2011, 13h10   #4
Modérateur
 
Homme Loïc
Développeur Web
Inscription : février 2011
Messages : 678
Détails du profil
Informations personnelles :
Nom : Homme Loïc
Âge : 26
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2011
Messages : 678
Points : 1 041
Points : 1 041
Si ça fonctionne sous windows et pas sous linux c'est probablement un problème au niveau de la casse, windows ne différencie pas les majuscules des minuscules tandis que linux si
5h4rk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2011, 13h46   #5
Membre régulier
 
Homme Jordane
Étudiant
Inscription : février 2010
Messages : 59
Détails du profil
Informations personnelles :
Nom : Homme Jordane
Âge : 23
Localisation : France, Puy de Dôme (Auvergne)

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2010
Messages : 59
Points : 81
Points : 81
j'ai déjà vérifier j'ai pas de problème de ce côté la.
Je pencherai plutôt sur un problème de configuration de mon projet lorsque je l'ai installé sous linux.

Je travaille sans avoir installé Zend Server. J'ai donc fait un lien symbolique entre la library de mon projet et les fichiers du Zend Framework. Est-ce que ça pourrai venir de la?

j'ai essayé d'ajouter dans le php.ini le chemin du répertoire ou il y a les classes mais ça change rien
Joauc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2011, 14h02   #6
Membre régulier
 
Homme Jordane
Étudiant
Inscription : février 2010
Messages : 59
Détails du profil
Informations personnelles :
Nom : Homme Jordane
Âge : 23
Localisation : France, Puy de Dôme (Auvergne)

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2010
Messages : 59
Points : 81
Points : 81
J'ai trouvé !!

Effectivement c'était un problème de majuscule.
Mes classes étaient bien nommé par contre un des fichiers contenant les classes s’appelait demande.php au lien de Demande.php

merci a vous
Joauc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2011, 14h25   #7
Modérateur
 
Homme Loïc
Développeur Web
Inscription : février 2011
Messages : 678
Détails du profil
Informations personnelles :
Nom : Homme Loïc
Âge : 26
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2011
Messages : 678
Points : 1 041
Points : 1 041
Il n'y a pas de quoi
5h4rk est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h03.


 
 
 
 
Partenaires

Hébergement Web