Question

Que pensez-vous (en particulier de PHP) d'une convention de dénomination pour les classes dans laquelle le nom de la classe reflète le chemin d'accès au fichier, lié au répertoire du projet? par exemple:

# /project/Session/Abstract.php
# /project/Session/Database.php

class Session_Database extends Session_Abstract ...

Je suis sûr que vous avez compris l'idée. Je suis également sûr que certains des avantages sont évidents .. mais que pensez-vous - vaut-il la peine d'allonger les noms de classe afin d'obtenir une structure de répertoires assez agréable et facile à naviguer?

Ceci permet également une définition one-liner __autoload ($ class) en PHP: str_replace ('_', '/', $ class);

Je suppose que certaines personnes vont considérer cette convention comme stupide. Personnellement, j'aime bien ça, mais je ne l'ai pas vu utilisé par d'autres personnes et je ne suis pas tout à fait sûr que ça va marcher si bien dans la pratique.

L’un des inconvénients pourrait être que, avec la suppression des appels d’inclusion / demande, toutes les classes dépendent (collent ensemble) de la fonction de chargement automatique, ce que certains pourraient soutenir, ne correspond pas à leur compréhension du couplage faible.

La seule référence connue à ce jour sur cette approche est http: // softwareengineering .vazexqi.com / files / pattern.html

Alors, avez-vous une opinion sur celui-ci?

Était-ce utile?

La solution

Ensuite, vous n'avez pas cherché. PEAR utilise cette approche. Il en va de même pour Zend Framework . C'est un standard assez établi dans le monde de PHP. Je ne sais pas quand je l'ai rencontré pour la première fois, mais personnellement, je l'utilise et je l'apprécie depuis plusieurs années, à la fois dans le cadre de mon propre framework et dans celui de ZF.

Autres conseils

La seule chose qui ne me plaît pas dans tout ça, c’est que lorsque je dois déplacer du code, je finis par travailler à nouveau beaucoup de noms. Cependant, Emil a déjà fait remarquer que cela ressemblait beaucoup au cours, mais j'aimerais ajouter le Règles de nommage de PHP Userland .

J'utilise aussi cette convention.

Non seulement cela aide-t-il à avoir une jolie structure de fichier, mais cela aide également à résoudre les problèmes de nomspacing Cette convention de nommage aide les préfixes des classes à éviter de dupliquer les noms de classes.

Quand PHP 5.3 sortira et aura finalement des espaces de noms, je continuerai à utiliser cette convention. La seule chose que je ferai différemment est de raccourcir les noms de classe, de convertir mes préfixes en espaces de noms appropriés et d’ajuster mon autoloader.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top