Lors du développement d'une bibliothèque de classes, il y a une meilleure pratique pour nommer les fichiers?
Je pensais en quelque sorte qu'il devrait refléter la hiérarchie des classes. Je pensais à mettre en œuvre quelque chose comme: p> donc dans la présente Convention: p> Est-ce une bonne implémentation ou y a-t-il une meilleure façon? P> P>
4 Réponses :
Il n'y a pas de règles pour nommer des fichiers, sauf lorsque vous utilisez un cadre. Vous pouvez vous sentir libre de nommer vos fichiers comme vous le souhaitez, cependant, si vous utilisez un cadre, cela peut entraîner une erreur lors de la tentative de chargement des fichiers. P>
La meilleure implémentation est celle que vous ressentez le mieux lorsque vous utilisez. P>
Le meilleur n'est pas toujours celui que vous ressentez le mieux. Cela finirait par gâcher! Il y a des conventions et des normes là-bas
Les noms des fichiers ne doivent pas avoir de suffixes de préfixes - uniquement Nom de la classe, pour la rendre possible les trouver par autoloadeur code>
. p>
Les classes d'enfants commencent avec la classe NOM IT EXTENDRE P> blockQuote>
jamais. C'est une pratique courante d'ajouter (au nom de la classe) des mots comme une interface ou un résumé, mais pas des noms des parents, définitivement. P>
Un peu vieux, mais comment nommeriez-vous des fichiers qui servent de modèles HTML et qui contiennent très peu de déclarations de PHP, je suis difficile à gérer avec une convention, je n'ai pas été utile d'entendre ce que quelqu'un d'autre a utilisé.
Il est difficile de répondre à une telle question parce que cela dépend beaucoup de ce que vous vous sentez bien pour vous-même. De ma propre pratique, je ne peux que suggérer de donner des noms naturels et non techniques. J'ai presque totalement chuté pour utiliser l'interface ou l'abstrait dans mes noms de classe, supprimé à l'aide d'une version courte comme Il n'y a aucun problème à déterminer si quelque chose est une interface ou une classe elle-même est abstraite. C'est déjà dans la langue. Donc, en plus de mettre cela dans le même nom de classe (et c'est un peu le même pour les classes parents, mais vous nommez souvent naturellement naturellement les classes d'enfants) est simplement superflu. P> à la fin, vous utilisez simplement vos classes par leur nom . Alors, trouvez de bons noms au lieu de noms techniques est probablement la ligne de fond. Il y a un bon chapitre du livre appelé Clean Code sur la recherche de bons noms pour vos cours. P> à côté de cela, utilisez les espaces de noms (ou psutudeo-namspaces sous forme de Préfixes Si vous ne pouvez pas les utiliser en raison de la version PHP) et placez les classes en sous-répertoires et utilisez un fichier = une classe. P> C code>,
i code> ou
a code> devant le nom . J'essaie même de prévenir telle. Donnez au nom de la classe un nom qu'il mérite;).
Interface \File
File.php
class \File\Text
File/Text.php
class \File\PHP
File/PHP.php
Il existe de différentes manières de construire votre système en ce qui concerne les noms de classe, le chargement automatique, les interfaces, etc., ce que vous devez vous rappeler est que si d'autres personnes vont utiliser le code, développer dessus, vous voulez Faites-le aussi simple et facile à apprendre que les développeurs autrement auront du mal à le coder.
Il existe de nombreuses façons, comme indiqué ci-dessus, l'un d'entre eux est le psr-0 qui examine les noms de classe, les espaces de noms et la structure de répertoires, c'est un concept simple utilisé par beaucoup de De grands développeurs, tels que im travaillant sur un système pour le moment et, bien qu'il ne dispose pas de la structure PSR-0, il est toujours assez simple: Vous pouvez visiter la source ici et faire une navigation sur: https://github.com/admininspot/ Asframework p> Je ne suis pas sûr que votre convention soit Appliquez capable de bibliothèques, je veux dire que le nom du fichier n'a aucune pertinence le code réel, il est donc inutile de combiner le nom de la classe avec les parents et les interfaces, car vous n'allez jamais inclure le fichier via le nom de la classe qu'il s'étend. P > Si ce sont principalement les dépendances que vous êtes intéressé par une solution automatique pour charger les dépendances de classes, j'adopterais la solution PSR-0. P> Fondamentalement, vous effectuez les suivantes: P> zend code> et beaucoup d'autres p>
class HTTP_Input extends HTTP_Protocol implements Interface_Readable_Context{}