J'ai commencé à me documenter sur Zend Framework car je vais bientôt commencer à l'utiliser en production. Tout fonctionnait bien, jusqu'à ce que je commence à utiliser et travailler avec des modèles :). L'emplacement par défaut pour les modèles, basé sur les recommandations Zend, est application/models/DbTable
, où tous les modèles seront jetés. Cet emplacement me force à nommer un modèle comme Application_Model_DbTable_Actors
. Pour moi, c'est un nom très long pour un modèle et pas un facile à utiliser.zend framework models location et chargement automatique
La structure du répertoire que je veux obtenir ressemble à quelque chose comme ceci:
application/
models/
actors/
ActorsMapper.php
Actor.php
books/
BooksMapper.php
Book.php
etc.
Alors tous mes modèles résidera dans le répertoire models
, mais regroupés dans leurs propres répertoires.
Le nom de chaque classe doit être ActorsMapper
ou Actor
(ils s'étendront tous les deux Zend_Db_Table
ou Zend_Db_Row
). Je suis conscient du fait que dans mes contrôleurs si j'instancie un modèle en utilisant quelque chose comme $actors = new ActorsMapper()
j'obtiendrai un Fatal error: Class not found
et c'est pourquoi je demande votre aide avec ceci.
Pour résoudre ce problème, j'ai essayé d'ajouter mon répertoire models
à l'include_path:
premier essai
ajouté
includePaths.models = APPLICATION_PATH "/models"
à application.ini
mais celui-ci n » t même l'ajouter à la voie d'inclusion
deuxième essai:
ajouté le chemin explicitement en utilisant
set_include_path(implode(PATH_SEPARATOR, array( realpath(APPLICATION_PATH . '/../library'), realpath(APPLICATION_PATH . '/models'), get_include_path(), )));
mais même si cela ajoute ce chemin parmi ceux inclus, l'erreur persiste.
J'ai vu cette dénomination de modèles dans le official documentation du Zend_Db_Table
, mais je n'ai pas pu trouver quelque chose lié à leur chargement automatique.
Merci à tous pour toutes les solutions.
p.s. La version du framework zend est 1.11.1
Vous devez creuser dans l'autoloader et l'étendre pour reconnaître ce répertoire structre et espace de noms. Sinon, vous êtes lié à la manière zend. –
ok, donc il semble que ce soit le seul moyen. Merci! – misterjinx