Vieux thread mais je vais carillon parce que je crois que les réponses sont incomplètes et manquent dans le "pourquoi". CakePHP a trois façons de charger des modèles. Bien que seulement deux des méthodes de travail à l'extérieur, d'un Contrôleur, je vais vous parler de tous les trois. Je ne suis pas sûr à propos de la version de la disponibilité mais ce qui est le noyau de choses donc je crois qu'ils vont travailler.
App::import()
découvre, et require()
s le fichier, et vous aurez besoin d'instancier la classe pour l'utiliser. Vous pouvez dire import()
le type de classe, le nom et le chemin d'accès au fichier de détails.
ClassRegistry::init()
charge le fichier, ajoute l'instance de l'objet carte et retourne l'instance. C'est la meilleure façon de charger quelque chose, car il met en place le "Gâteau" des choses que se passerait-il si vous avez chargé la classe par des moyens normaux. Vous pouvez également définir un alias pour le nom de la classe que j'ai trouvé utile.
Controller::loadModel()
utilise ClassRegistry::init()
ainsi que ajoute le Modèle en tant que propriété du contrôleur. Il permet également d' $persistModel
pour le modèle de mise en cache sur les demandes futures. Cela ne fonctionne que dans un Contrôleur, et, si c'est votre situation, je voudrais utiliser cette méthode avant les autres.