Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
J'ai un problème avec l'autoload et ma librairie. Dans certains controller de mon appli, j'utilise une fonction qui se trouve dans un fichier.php de ma librairie.
Parallèlement, j'ai activé dans mon bootstrap l'autoload.
Quand je ne fais pas d'include de mon fichier .php, j'ai une erreur qui m'est retourné disant que la fonction que j'utilise n'est pas définie. Or, elle l'est, dans ma librairie... Et quand je mets l'include de mon fichier, ça fonction correctement...
Voici mon boostrap :
set_include_path('.' . PATH_SEPARATOR . './library/MaLibrairie' . PATH_SEPARATOR . './library' . PATH_SEPARATOR . './application/models' . PATH_SEPARATOR . './application/plugins' . PATH_SEPARATOR . './application/util' . PATH_SEPARATOR . get_include_path()); require_once 'Zend/Loader.php'; Zend_Loader::registerAutoload();
Si quelqu'un a une idée, je suis preneur !
Merci de m'avoir lu / répondu
Nikko
Dernière modification par Nikko (16-04-2009 11:51:12)
Hors ligne
Salut mon ami,
J'ai fait aussi un include de path comme toi.
Mon site est comme ca :
-application
-views
-models
-controllers
-mesvalidateurs
-html
-index.php => le bootstrap.
et personnellement, j'ai mis ca comme url :
set_include_path('.'
. PATH_SEPARATOR . '../library'
. PATH_SEPARATOR . '../application/models/'
. PATH_SEPARATOR . '../application/mesvalidateurs/'
(remarque le double point '..' .....
j'espère que ca t'aidera....
Hors ligne
Merci Gost
Le double point ne me servira pas étant donné que je n'ai pas la même structure que toi :
monAppli
|-application
|-document_root
|-library
|-index.php
Donc il est normal que j'utilise un seul point. Toujours est-il que je ne comprends pas pourquoi il ne charge pas mon fichier alors que j'ai bien spécifié le chemin vers ma librairie et donc mon fichier...
Merci pour la réponse
Nikko
Hors ligne
Si je ne m'abuse, l'auto-load sert uniquement à charger des classes, à partir desquelles tu appelles ta fonction.
Donc si ton fichier contiens uniquement des fonctions cela ne marchera pas.
tu peux par contre creer une classe "généraliste" genre "My_Functions", et lorsque tu feras un truc genre My_Function::taFunction(); alors l'auto-load fera son travail.
Hors ligne
Merci Asfaloth,
Ta réponse m'apporte une meilleure compréhension de l'autoload. Je vais donc modifier mon fichier pour créer une classe générique et y insérer les fonctions contenues dans mon fichier.
Merci encore de la réponse
Dernière modification par Nikko (16-04-2009 10:51:51)
Hors ligne