Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour à tous,
Je rencontre un problème sur mon installation de la dernière version du ZF. J'ai une structure classique en module qui suit l'arbo suivante :
- application
------- Bootstrap.php (class vide)
------- modules
-------------- default
-------------------- models
-------------------- controllers
-------------------- views
-------------- test
-------------------- Bootstrap.php (contient l'init autoload)
-------------------- models
-------------------- controllers
-------------------- views
Le contenu du Bootstrap.php du module test :
class Test_Bootstrap extends Zend_Application_Module_Bootstrap
{
public function _initAutoload() {
$autoloader = new Zend_Application_Module_Autoloader(array(
'namespace' => 'Test' ,
'basePath' => dirname(__FILE__)));
return $autoloader;
}
}
Je n'ai aucun problème pour charger des modèles du module test (new Test_Model_Class()) mais impossible de charger un modèle contenu dans le module default, j'ai essayé :
Default_Model_Class()
Model_Class();
et Class();
Rien n'y fait j'ai toujours : Fatal error: Class 'XXXXX' Not found....
Voici mon application.ini :
[production]
phpSettings.display_startup_errors = 0
phpSettings.display_errors = 0
includePaths.library = APPLICATION_PATH "/../library"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
; Configuration de la gestion des modules
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.modules[] = ""
[staging : production]
[testing : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
[development : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
J'ai essayer de sortir le répertoire models et le mettre sous application mais rien n'y fait... et je me vois mal ajouter mon répertoire models dans l'incliude path (pas bô)
L'un d'entre vous as t'il déjà rencontré le même souci ?
Merci d'avance pour l'aide que vous pourriez m'apporter.
Dernière modification par blackarma (19-05-2009 14:40:02)
Hors ligne
Pour ces 2 lignes ca doit etre plutot ca :
'namespace' => 'Test_' , // Manque le _ 'basePath' => dirname(__FILE__).'/modules/Test'));
Poste aussi l'initAutoLoader de ton Bootstrap
Dernière modification par alien7 (19-05-2009 12:19:37)
Hors ligne
mon bootstrap sous application est vide :
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap {
}
en ce qui concerne le bootstrap sous le module Test, ton exemple ne marche pas puisque le __FILE__ se localise déjà sous /modules/test
sinon j'ai :
Warning: include(/Users/blackarma/Sites/application/modules/free/modules/free/models//Member.php) [function.include]: failed to open stream: No such file or directory in /usr/local/lib/php/zend_1.8.1/library/Zend/Loader/Autoloader/Resource.php on line 173
Hors ligne
Il pointe précisement ou ton dirname(__FILE__) ?
Pour ton Boostrap vide essaye d'ajouter ca:
protected function _initAutoload() { $moduleLoader = new Zend_Application_Module_Autoloader(array( 'namespace' => 'Default_', 'basePath' => APP_PATH./modules/default)); return $moduleLoader; }
Hors ligne
Je viens justement de me retapper tout le quickstart qui ne colle pas avec d'autres parties de la doc (à certains endroit la doc indique que le mot default n'a pas besoin d'être spécifié). J'ai modifié mon bootstrap comme indiqué par alien7 et ça marche !!
J'aurais préféré quelque chose de plus transparent pour le module par default qui colle un peu mieux avec le comportement de zf sans modules. Mais bon ça marche !! Merci de ton aide Alien7 !!
Hors ligne
Sinon prend cette structure si tu veux pas mettre "Default" partout
------- Bootstrap.php ------- models ------- controllers ------- views ------- modules -------------- test -------------------- Bootstrap.php (contient l'init autoload) -------------------- models -------------------- controllers -------------------- views
C'est la structure que donne ZF_tool (enfin je crois)
et le bootsrap :
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap { protected function _initAutoload() { $moduleLoader = new Zend_Application_Module_Autoloader(array( 'namespace' => '', 'basePath' => APP_PATH)); return $moduleLoader; } }
Hors ligne
Bon en fait apparemment le problème venait bien de là en fait je suis bien obligé de taper http://localhost/nomprojet/public/index.php/lenomdumodule et là ça fonctionne. Comment je dois faire dans ce cas pour pouvoir y accèder de manière à avoir une url: http://localhost/nomprojet/nommodule?
Merci
Hors ligne
je pense qu'il faut que tu créer un virtual host
Hors ligne
Pages: 1