Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
Je tourne en boucle sur un truc et ça commence à bien faire. Voici une partie de mes déclarations de ressource dans un _initAutoload() du bootstrap :
protected function _initAutoload() { $autoloader = new Zend_Application_Module_Autoloader(array( 'namespace' => '', 'basePath' => dirname(__FILE__), )); // Définition de la localisation des validateurs $autoloader->addResourceType('validator','forms/validators','Form_Validator'); // Définition de la localisation des filtres personnalisés $autoloader->addResourceType('filter','infosol/filters','Infosol_Filter'); // Définition de la localisation des "Model" correspondants au méta données $autoloader->addResourceType('meta','model/metadonnes','Model_Metadonnees'); // Définition de la localisation des "Librairies" spécifique à donesol $autoloader->addResourceType('libs','infosol/libs','Infosol_Libs'); // Définition de la localisation des decorateurs personnalisés // $autoloader->addResourceType('decorator','infosol/decorators','Infosol_Decorator'); return $autoloader; }
Avec mon arborescence :
Et lorsque je veux instancier des objects dans mon répertoire "models/metadonnees" la boom :
$t = new Infosol_Libs_Codage(); $tableCodage = new Model_Metadonnees_Codage(); ---------------- Warning: include(/var/www/donesolweb/application/model/metadonnes//Codage.php) [function.include]: failed to open stream: No such file or directory in /usr/local/zend/share/ZendFramework/library/Zend/Loader/Autoloader/Resource.php on line 173
Il me trouve bien le Infosol_Libs_Codage mais pas ma classe dans model/metadonnees. Franchement ça doti être une erreur de déclaration dans le initAutoload, un s en plus ou en moins ou une autre débilité dans ce genre...
Merci pour votre aide,
Bye
Hors ligne
Ton dossier de modèles s'appelle bien model ? Je demande car en général on met models avec un s donc peut etre la source de l'erreur ?
Hors ligne
aelyta1 a écrit:
Ton dossier de modèles s'appelle bien model ? Je demande car en général on met models avec un s donc peut etre la source de l'erreur ?
Oui sur la screenshot c'est bien "models" :\
Hors ligne
$autoloader->addResourceType('meta','model/metadonnes','Model_Metadonnees');
Manque pas un s à model/metadonnes ? models/metadonnes
Hors ligne
met un m majuscul à métadonné, tous les dossiers, sous-dossiers, fichiers, sous-fichiers qui sont dans les dossiers inclus par les ressources doivent avoir une majuscule (défaut de Zend)
Hors ligne
Je ne suis pas certain que les majuscules soient nécessaires ici.
Model_Metadonnes étant affecté au contenu du dossier model/metadonnes (contenant(s) exclus) ça ne devrait à priori pas poser de problème.
En revanche s'il y a un sous-dossier dans model/metadonnes il faudra sans nul doute qu'il porte la majuscule afin de lui permettre un accès via Model_Metadonnes_Sousdossier afin de ne pas déroger à la norme de casse des classes. Toutefois une alternative existe, conservant la minuscule au sous-dossier, qui consisterait à l'ajout d'un nouveau type de ressources pointant le namespace Model_Metadonnes_Sousdossier sur le dossier model/metadonnes/sousdossier
Hors ligne
Ok, cool les gars, donc ça confirme que je me fais c***r pour une histoire de majuscule...
thorin19 > Selon toi on doit faire ça car "models" est une ressource par défaut de ZF ? Car si tu regardes bien, mon dossier personnel "infosol" et son sous-dossier "libs" (donc bien sans Majuscule en première lettre) se voit très bien dans mon code source.
Je vais tester ça demain au boulot
Merci , Bye
Dernière modification par itecman (18-08-2009 08:45:34)
Hors ligne
Pages: 1