Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 11-08-2009 02:45:37

DarKA
Membre
Date d'inscription: 18-07-2007
Messages: 84

Recapitulatif sur structure, autoload, noms de fichier, path, HELP !

Bonjour,
J'aimerais que vous m'aidiez à faire le point sur les autoload, noms de fichiers, paths, dans Zend. En effet j'envisage de commencer à coder des projets assez important et je veux m'assurer d'avoir compris les bases.

J'utilise le zend depuis la 0.9, l'ayant récemment repris j'ai constaté des nombreux changements que j'ai du mal à comprendre.

Premièrement la structure de projet :

Les projet avec le framework se structurait depuis longtemps comme suit :

/APPLICATION

/LIBRARY

/PUBLIC

A l'intérieur de APPLICATION, tout le gros code. Dans Library, le sourcecode du framework, plus ceux d'autres framework si utilisés. Seulement j'ai constaté que maintenant les tutoriaux tendent à mettre leurs propres classes dans LIBRARY. Et à recréer des arborescence parralleles. Où est l'interet ? Pour les modules j'essaye tant bien que mal de comprendre l'interet d'arborescence recrée, mais sinon quel est l'interet ??

du style

Code:

To set our roles we will need to create following directory structure
library/My/Controller/Helper/
And
library/My/Controller/Plugin/
In your helper directory create Acl.php and place the following code in it.

Deuxiemement le nommage des classes.

Avant il me suffisait d'appeller une classe par son nom, genre new Login(). Maintenant, meme pour mes propres classes je dois définir via leur noms leurs emplacements, du style : new Form_Acl_Login. Quel est l'interet ? Je suppose que c'est pour soulager soulager le framework. Mais alors pourquoi l'on ne garde pas une arborescence simple.
D'ou sors cette manie d'appeller les classes My_Controller_Plugin_Auth. Tous les codent pointent sur un répertoire My. Où est il placé ? Si quelqu'un pouvait m'expliquer ca je ramerais surement moins sur les tutos que je trouve.


Pourquoi on ne garde pas une arborescence simple genre les action plugins et les action helplers dans des sous répertoire de CONTROLLER. Puisque en fait controller c'est à nous !

J'éprouve ainsi les pires difficultés à placer les fichiers parce que je voudrais suivre une arborescence simple. J'ai tendance à croire qu'il me suffit de renommer mes class My_Controller_Plugin_Auth en Zend_Controller_Plugin_Auth. Mais voila ca calle. Il faut que je me batt avec un basepath. Et j'ai l'impression que ce n'est pas TOP.

Alors s'il vous plais je répete ma question. Comment pourrais je faire pour avoir chaque types de fichiers dans des répertoires séparées ? Il faut spécifier des Basepath et des préfix pour chak ?

Un controller je l'appelle AdminController. Mais un fichier qui serais dans mon répertoire Controllers, et dans un sous répertoire plugins, comment je l'appelle ?

J'aimerais bien que Zend soit la racine application et que Zend_controller soit le répertoire controllers, mais voila, ca ramene à la vraie librairie Zend. Pourtant moi j'aimerais bien utiliser une arborescence pour mes fichiers calquées sur la structure du projet. Dans ce cas la comment faire ?

Merci de m'avoir lu !

Dernière modification par DarKA (11-08-2009 02:46:00)

Hors ligne

 

#2 11-08-2009 08:29:58

aelyta1
Membre
Lieu: Rouen
Date d'inscription: 29-06-2009
Messages: 98

Re: Recapitulatif sur structure, autoload, noms de fichier, path, HELP !

As-tu lu la documentation officielle ? Ils expliquent pas mal de choses sur l'arborescence etc


veni, vidi, riendi
Vive les lapins-antilopes !

Hors ligne

 

#3 11-08-2009 09:06:04

philippe
Administrateur
Lieu: Grenoble
Date d'inscription: 01-03-2007
Messages: 1624

Re: Recapitulatif sur structure, autoload, noms de fichier, path, HELP !

@aelyta1 : quand tu renvoies au manuel, donnes au moins une URL...

@DarKA :
Sinon l'intérêt des nommages en Company_Project_ClassName, c'est de ne pas avoir plusieurs librairies qui se marchent sur les pieds.
Si 2 librairies différentes utilisaient une classe "Login", tu aurais une erreur PHP. Pour résoudre le problème, le ZF propose une règle de nommage commune à tout le monde.

Après tu n'est pas obligé de tout mettre dans un répertoire /library, mais tu peux si tu veux.

Par contre le nommage en My_xxx est complètement débile (désolé pour ceux qui l'utilisent). Le principe est d'utiliser d'abord le nom de ta boite (ou de ton entité), éventuellement le nom de ton projet et ensuite ta classe. L'idée est vraiment que quand tu crées une classe, son nom soit unique, tu ne risque pas d'avoir un conflit avec une autre classe.

Ces nommages concernent toutes tes classes (y compris les helpers, plugins,...), sauf tes controlleurs qui ont un nom particulier dans le MVC.

Après libre à toi de mettre tes classes dans un répertoire "model/" à toi et de faire pointer le include_path dessus, voire de faire un répertoire "model/" par module et de faire pointer ton include path sur l'ensemble de ces répertoires... Comme ça ton code n'est pas mélangé avec des librairies, par contre tu l'appelles comme s'il était mélangé avec un $login = new MaBoite_MonProjet_Login();

Bon, je ne sais pas si j'ai été clair, mais le but est d'éviter les conflits... et d'utiliser une arborescence de classes "cohérente" avec celle proposée par Zend.

A+, Philippe


twitter : @plv ; kitpages.fr : Création de sites internet à Grenoble et Paris

Hors ligne

 

#4 11-08-2009 18:21:25

DarKA
Membre
Date d'inscription: 18-07-2007
Messages: 84

Re: Recapitulatif sur structure, autoload, noms de fichier, path, HELP !

Yep
@aelyta1 : Ben merci, mais en fait les points que je recherche sont des points qui m'échappent que je retrouve éparpillées dans des tutoriaux. Typiquement les allusions à des répertoires du type : path/to/, dont je ne sais pas précisément comment interpréter cela. Ou bien les les class en My.

@phillipe : Merci pour tes lumieres. Je comprends mieux certains éléments. Maintenant la philosophie c'est donc plus le dev de véritables briques, au lieu de penser à repartir de zéro avec les petits légo on dira !

Par contre le nommage en My_xxx, ca présente peut etre l'avantage de pouvoir mieux maitriser la structuration et l'appel des fichiers non ?
Comme tu dis cela a pour but d'éviter les conflits de nommage inter-projets.
Mais, aussi autrechose :
Je prends pour exemple, que moi dans mon cas, j'aimerais bien appeller un custom plugins qui s'appelle Dada situé dans /application/controllers/plugins via : Myproject_controllers_plugins_Dada.
Pas forcément par coquetterie, mais je me dis que avoir un nom direct et simple comme cela niveau perf ca dois surement aider l'autoload.
Dans ce cas la, ce qui compte c'est maitriser le préfixe de chaque types de fichiers, et leur adjoindre aussi pour chaque type un path ?

Je brule ou pas ?

Sinon niveau performence ce n'est pas tendu de faire un include_path à rallonge, qui pointerais sur chaque répertoire de model par modules par exemples comme tu me le suggère ?

Cordialement,

Hors ligne

 

#5 11-08-2009 21:09:05

philippe
Administrateur
Lieu: Grenoble
Date d'inscription: 01-03-2007
Messages: 1624

Re: Recapitulatif sur structure, autoload, noms de fichier, path, HELP !

Au niveau des perfs, je n'ai jamais fait le test, mais intuitivement je dirais que ce qui compte c'est le nombre de fichiers contenus dans les répertoires de l'include_path. Je pense que le nombre de répertoires de l'include path n'a pas beaucoup d'influence...

Pour ton Myproject_controllers_plugins_Dada, je te donne mon approche (mais ça n'est pas parole d'évangile) :
je l'appellerais Myproject_Controller_Plugin_Dada et je collerais ça dans le répertoire : model/Myproject/Controller/Plugin/Dada.php
(donc dans le répertoire model/ et pas dans le répertoire des contrôleurs, comme ça les contrôleurs sont les seules classes qui sortent de cette règle de nommage)

(note : le Controller_Plugin que j'ai ajouté au milieu est juste pour se rapprocher de l'organisation du ZF dans lequel les plugins sont dans Zend_Controller_Plugin_xxx, mais ça n'aurait rien de choquant de le mettre directement dans Myproject/Dada.php ou Myproject/Plugin/Dada.php....)

A+, Philippe


twitter : @plv ; kitpages.fr : Création de sites internet à Grenoble et Paris

Hors ligne

 

#6 13-08-2009 05:39:31

DarKA
Membre
Date d'inscription: 18-07-2007
Messages: 84

Re: Recapitulatif sur structure, autoload, noms de fichier, path, HELP !

ok, j'étudie ca.
Puisque tu me semble très calé sur le sujet, pourrais tu jeter un coup d'oeil à un autre sujet que j'ai ouvert ?
L'idée c'est que j'ai ouvert l'autre sujet avec un titre pertinant dans le but que le post soit bien référencé sur google.

http://www.z-f.fr/forum/viewtopic.php?id=3795

A+

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages