Bonjour à tous,
J'ai un petit problème avec un projet Zend et l'autoload.
Actuellement je charge chaque classe via Zend_Loader::loadfile.
Je me retrouve donc avec des controlleurs chargeant beaucoup de fichier de cette manière.
Je tente de mettre en place un autoload dans le boostrap, voici le code:
1 2 3 4 5 6
|
protected function _initAutoload()
{
$loader = Zend_Loader_Autoloader::getInstance();
$loader->registerNamespace(array('Application_Projet1_'));
} |
Mon projet est sous la forme suivante :
/application
/admin
/default
/projet1
/controllers
/models
/views
/projet2
...
J'appel dans mon controller le model Application_Projet1_Model_MonModel comme ceci :
$MonModel = new Application_Projet1_Model_MonModel();
Mon model est sous cette forme (fichier MonModel.php):
class Application_Projet1_Model_MonModel extends Zend_Db_Table_Abstract{
}
Donc ça fonctionne si je fais ceci directement dans le controller :
Zend_Loader::loadfile('MonModel.php', APPLICATION_PATH.'/projet1/models');
Maintenant si je commente cette dernière ligne, j'ai une belle erreur, l'autoload n'arrive pas à trouver mon model :
Warning: include_once(Application\Projet1\Model\MonModel.php) [function.include-once]: failed to open stream: No such file or directory in C:\Program Files (x86)\Zend\ZendServer\share\ZendFramework\library\Zend\Loader.php on line 148
Warning: include_once() [function.include]: Failed opening 'Application\Projet1\Model\MonModel.php' for inclusion (include_path='.;C:\Program Files (x86)\Zend\ZendServer\share\ZendFramework\library;.;C:\Program Files (x86)\Zend\ZendServer\share\ZendFramework\library;D:\php\includes') in C:\Program Files (x86)\Zend\ZendServer\share\ZendFramework\library\Zend\Loader.php on line 148
J'ai été dans la class Loader.php pour voir ce que Zend tentait d'ouvrir.
Je fais donc un var_dump du chemin et j'ai ceci:
Application\Projet1\Model\MonModel.php
je test de changer le chemin directement dans le Loader en mettant ceci :
..\Application\Projet1\Model\MonModel.php
Et à ce moment là le fichier est bien chargé et tout fonctionne.
Je ne comprend donc pas pourquoi Zend n'arrive pas à trouver mon fichier donc si quelqu'un pouvait me donner un petit coup de pouce parce que je bloque un peu là.
Merci d'avance
Partager