2010-03-12 8 views
0

Quelle classe (FrontController, Bootstrap, Dispacher ....) définit le chemin de structure par défaut dans ZF?Cadre Zend Modification de la structure interne?

+1

Peu importe ce que vous pensez, vous ne devez absolument pas modifier le cadre! * (Avec ZF, presque tous les chemins peuvent être configurés, de toute façon, à partir de votre Bootstrap ou d'un fichier de configuration .ini) * - ce serait un enfer de le mettre à jour, plus tard. –

+0

Exactement pas de modification du noyau me fait pour le faire, à travers le plugin pour mettre en place les bons chemins pour mon fichier struc (comme la structure standard ne fournit pas vraiment d'approche modulaire réutilisable) – simple

Répondre

2

Il n'y a pas d'instance unique qui a tous les chemins. Chaque composant a ses propres valeurs par défaut, par ex. Le FrontController sait que le répertoire du contrôleur doit être nommé controllers, mais il ne sait pas comment en faire un chemin complet (Dispatcher le fait) ou où trouver les Helpers d'Action. C'est défini dans ActionHelper Broker. Par conséquent, Zend_View_Abstract contient les chemins pour les filtres, les aides et les scripts de View, etc.

Comme @Pascal mentionné dans son commentaire, vous ne devriez pas modifier ZF en son cœur. Vous perdrez les modifications une fois que vous aurez mis à jour une version plus récente. Configurez les chemins via l'API dans votre bootstrap ou via le fichier application.ini à la place.

+0

Je le fais dans le plugin du contrôleur, En réalité ne pas modifier le Core est mon objectif principal et la contrainte, c'est pourquoi j'utilise plugin, et à partir de là spécifiant où aller si backend? frontend, et où chercher des modèles pour cela etc – simple

+1

juste besoin de spécifier en fonction de quelEnd regarder dans le APPLICATION_PATH. '/ modules/modulename/Whichend/(controllers | view), presque réussi à le faire, mais ayant des problèmes avec la configuration par défaut Contrôleur arrière, Bien planifier de lire le code et faire un graphique pour le comprendre clairement - j'ai eu un ennemi intéressant week-ends =) – simple

1

En fait, c'est le travail du répartiteur de trouver le contrôleur d'action demandé.

Vous devrez donc étendre soit Zend_Controller_Dispatcher_Abstract ou Zend_Controller_Dispatcher_Standard ou même en créer un complètement nouveau basé sur Zend_Controller_Dispatcher_Interface pour répondre à vos besoins.

Mais sachez que vous devrez changer la manière dont Zend_Controller_Action_Helper_ViewRenderer essaie également de trouver les fichiers de vue requis.