par
devlop78 » 25 déc. 2011, 05:07
Pour les décorateurs, vu qu'ils sont partageables par plusieurs applications, tu peux les mettre dans la library :
/library/Xtg/...
Tout ce qui se trouve dans la librairie sera normalement (dans le sens de normal) trouvé et inclus par le Zend Loader avec un appel de classe tel que "new Xtg_Form_Decorator_Captcha".
Par contre la convention indique que les namespaces doivent commencer par une majuscule, donc les dossiers aussi. Et pour que le tout fonctionne, il faut que tu enregistres, par exemple dans ton bootstrap si tu es en Application Zend, auprès de Zend Loader, ta bibliothèque Xtg. Toute l'arborescence derrière n'a pas besoin d'être précisée, sauf dans le cas d'utilisation de classe sous forme de chaine de caractères, comme certaines utilisations des helpers de vues et d'aide, les décorateurs, éléments de formulaires, etc.
Il en est de même pour ton application, où tu peux enregistrer des répertoires, par exemple :
/application
/models
/Table
Toto.php
/Row
Toto.php
Tu peux lui indiquer que App_Model correspond au dossier /application/models et tu pourras ensuite appeler normalement App_Model_Table_Toto ... Mais ce n'est pas le même Loader que pour les bibliothèques. C'est un peu déroutant ...
Pour les décorateurs, vu qu'ils sont partageables par plusieurs applications, tu peux les mettre dans la library :
/library/Xtg/...
Tout ce qui se trouve dans la librairie sera normalement (dans le sens de normal) trouvé et inclus par le Zend Loader avec un appel de classe tel que "new Xtg_Form_Decorator_Captcha".
Par contre la convention indique que les namespaces doivent commencer par une majuscule, donc les dossiers aussi. Et pour que le tout fonctionne, il faut que tu enregistres, par exemple dans ton bootstrap si tu es en Application Zend, auprès de Zend Loader, ta bibliothèque Xtg. Toute l'arborescence derrière n'a pas besoin d'être précisée, sauf dans le cas d'utilisation de classe sous forme de chaine de caractères, comme certaines utilisations des helpers de vues et d'aide, les décorateurs, éléments de formulaires, etc.
Il en est de même pour ton application, où tu peux enregistrer des répertoires, par exemple :
/application
/models
/Table
Toto.php
/Row
Toto.php
Tu peux lui indiquer que App_Model correspond au dossier /application/models et tu pourras ensuite appeler normalement App_Model_Table_Toto ... Mais ce n'est pas le même Loader que pour les bibliothèques. C'est un peu déroutant ...