174 votes

Ce qui ' s le deal avec un trait de soulignement dans les méthodes de classe PHP ?

En regardant par-dessus les différentes bibliothèques PHP j'ai remarqué que beaucoup de gens choisissent de préfixe de certaines méthodes de la classe avec un seul trait de soulignement, tels que

public function _foo()

...au lieu de...

public function foo()

Je me rends compte que finalement ça se résume à la préférence personnelle, mais je me demandais si quelqu'un avait une certaine idée de où cette habitude vient.

Ma pensée est qu'elle est probablement d'être reportée à partir de PHP 4, avant les méthodes de la classe pourrait être marqué comme protégée ou privée, comme une façon de dire "ne pas appeler cette méthode à partir de l'extérieur de la classe". Cependant, il m'est apparu que peut-être il est originaire de quelque part (une langue) je ne suis pas familier avec, ou qu'il peut être bon raisonnement derrière ce que je bénéficierait de savoir.

Des pensées, des idées et/ou des opinions serait appréciée.

170voto

Jeremy DeGroot Points 2569

C’est les mauvais vieux jours de Object Oriented PHP (PHP 4). Cette implémentation de OO a été assez mauvaise et ne comprend pas des choses comme des méthodes privées. Pour compenser, les développeurs PHP préfacé de méthodes qui étaient censés être privé avec un trait de soulignement. Vous verrez dans quelques classes plus anciennes `` de lui donner un poids supplémentaire.

Je n’ai jamais entendu parler de précéder toutes leurs méthodes avec des traits de soulignement, donc je ne peux pas commencer à expliquer quelles sont les causes qui les développeurs.

77voto

joedevon Points 1291

Je crois que la source la plus fiable pour ces sortes de conventions pour PHP droit serait maintenant le Zend Framework convention de codage: http://framework.zend.com/manual/en/coding-standard.naming-conventions.html#coding-standard.naming-conventions.functions-and-methods

Pour les méthodes sur des objets qui sont déclarées avec le "privé" ou "protégé" modificateur, le premier caractère du nom de la méthode doit être un trait de soulignement. C'est la seule acceptable application d'un trait de soulignement dans le nom de la méthode. Les méthodes déclarées "public" ne doit jamais contenir un trait de soulignement.

SNIP

Pour les variables d'instance qui sont déclarées avec le "privé" ou "protégé" modificateur, le premier caractère du nom de la variable doit être un seul trait de soulignement. C'est la seule acceptable à l'application d'un trait de soulignement dans le nom d'une variable. Les variables membres "public" ne doit jamais commencer par un caractère de soulignement.

43voto

Panique Points 4680

Maintenant, en 2013, c’est « officiellement » mauvais style par la PSR-2 orientation de codage :

Les noms de propriété ne devraient pas être préfixées par un trait de soulignement simple pour indiquer la visibilité protected ou private'

Source : https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md

12voto

jonstjohn Points 23326

Principaux traits de soulignement sont généralement utilisés pour les méthodes et les propriétés privées. Pas une technique que j’ai habituellement employer, mais reste populaire parmi certains programmeurs.

5voto

Quintin Robinson Points 41988

Je crois que votre hypothèse originale était correct, que j’ai trouvé qu’il est de pratique courante pour certains langages faire précéder d’un trait de soulignement aux méthodes/membres etc. qui sont destinés à être gardé secret à le « objet ». Juste un moyen visuel de dire même si vous le pouvez, vous ne devrait pas appeler cela !

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X