web-dev-qa-db-fra.com

Que dois-je nommer mon fichier de classe PHP?

J'ai vu de nombreux schémas de noms et extensions différents utilisés pour les fichiers PHP qui ne sont essentiellement que des classes. Quelques exemples:

  1. myClass.php
  2. myClass.class.php
  3. myClass.class

Quelle est la différence et quelle est la meilleure?

38
johnnietheblack

Il n'y a aucune différence au-delà de ce que vous voyez. Ceux avec .class sont utiles si vous utilisez autoloading et n'avez pas de répertoire spécifique où vos fichiers de classe vivent. Sinon, c'est tout à fait arbitraire. (J'avais l'habitude d'utiliser ClassName.class.php.)

41
chaos

Quelles sont vos normes de codage?

Il est courant de commencer les noms de classe par une majuscule (par exemple: class MyClass). Si vous faites cela, il s'ensuit que vous nommeriez le fichier MyClass.php. Et MyClass.class.php Fonctionne aussi.

MyClass.class Est une mauvaise idée qui pourrait permettre à quelqu'un d'afficher votre code source s'il demande ce fichier par son nom. L'utilisation de l'extension .php Garantit que l'utilisateur ne verra la sortie qu'après traitement du fichier par l'interpréteur PHP qui, pour un fichier qui ne contient qu'une classe), est une page vierge.

Enfin, regardez dans autoload() , ce qui vous évite d'avoir à appeler require_once Pour charger votre classe.


Mise à jour: Avec PHP standard de codage PSR-4 , il existe maintenant un semi- manière officielle de nommer vos fichiers de classe. Le conseil précédent - pour nommer votre fichier de classe de la même manière que la classe avec l'extension .php - est toujours valable. Mais maintenant, vous devez placer ce fichier de classe dans un sous-répertoire nommé d'après votre espace de noms de classe; PSR-4 requiert que toutes vos classes soient contenues dans un espace de noms que vous avez défini.

Qu'obtenez-vous pour cela? Chargement automatique gratuit! Si vous utilisez Composer , vous pouvez spécifier le répertoire de niveau supérieur pour vos classes et Composer les chargera automatiquement. Plus require instructions pour charger vos classes.

Si vous ne voulez pas faire cela, vous n'êtes pas obligé de: PSR-4 est une recommandation, pas une exigence.

45
Nate

Je préfère MyClass.php - le même nom exact (y compris les majuscules) que la classe.

Cependant, si vous travaillez sur un projet existant, vous devez utiliser le schéma de dénomination du projet.

5
Thomas Owens

À moins de travailler sur un projet ou une plate-forme existante, j'ai tendance à tendre vers un ensemble documenté de conventions, telles que celles de Zend: http://framework.zend.com/manual/en/coding-standard.naming-conventions. html

De plus, cela signifie que vous pouvez utiliser des outils comme PHP Code Sniffer pour vous assurer que tout le monde respecte la convention.

Quoi qu'il en soit, la cohérence est le nom du jeu. Il est beaucoup plus facile pour les autres (y compris vous-même dans des mois) de se familiariser avec une base de code.

1
xentek