6
votes

Parent PHP, classes abstraites et interfaces Nom de fichier des noms de fichiers

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: xxx

donc dans la présente Convention:

  • Les classes en béton uniquement utilisées comme base pour une autre classe ont le suffixe parent
  • Les classes abstraites ont le suffixe abstraite
  • Les classes d'enfants commencent avec le nom de la classe, il s'étend sur

    Est-ce une bonne implémentation ou y a-t-il une meilleure façon?


0 commentaires

4 Réponses :


0
votes

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.

La meilleure implémentation est celle que vous ressentez le mieux lorsque vous utilisez.


1 commentaires

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



11
votes

Conventions de nommage

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 .

Les classes d'enfants commencent avec la classe NOM IT EXTENDRE

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.


1 commentaires

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é.



1
votes

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 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;).

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> xxx pré>

à 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>

Interface \File
File.php
class \File\Text
File/Text.php
class \File\PHP
File/PHP.php


0 commentaires

2
votes

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 zend code> et beaucoup d'autres p>

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>

class HTTP_Input extends HTTP_Protocol implements Interface_Readable_Context{}


0 commentaires