Acerca de la convención de nomenclatura de subrayado de PHP(como en "_método" o "propiedad")
naming-conventions php-5.3 (4)
Esta es una especie de pregunta general sobre la que me he estado preguntando. He notado mucho de esto a través del código de otras personas, y nunca supe realmente la razón real, solo seguí las tendencias, así que aquí va.
¿Cómo es que algunos métodos y propiedades se nombran con un guión bajo en el frente y otros no? Por ejemplo, ¿cuándo se usaría específicamente function _method()
y cuándo se usaría function method()
, o, en otras palabras, private $_someVariable
vs. private $someVariable
?
*** Siga la pauta de codificación de PSR-2:
Los nombres de propiedades NO DEBEN tener un prefijo único para indicar visibilidad protegida o privada ''
Fuente: https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md
*** Razón:
No hay guiones bajos antes del nombre de la propiedad, como $ _income, en lugar de usar $ ingreso. El guión bajo se usó en algunos marcos y se puede confundir con las variables mágicas de PHP.
Fuente: http://www.geekgumbo.com/2013/05/19/psr-2-coding-style-guide/
Ahora, en 2013, este es un estilo "oficialmente malo" según la pauta de codificación del PSR-2:
Los nombres de propiedades NO DEBEN tener un prefijo único para indicar visibilidad protegida o privada ''
Fuente: https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md
Este es un documento oficial de php.net que no dice nada sobre el subrayado de soporte antes de private
métodos private
, campos private
.
Pero sigue la convención de codificación de Zend Framework :
Para los métodos en objetos declarados con el modificador
private
oprotected
, el primer carácter del nombre del método debe ser un guión bajo. Esta es la única aplicación aceptable de un guión bajo en un nombre de método. Los métodos declarados "públicos" nunca deben contener un guión bajo.
Por lo tanto, deberíamos comenzar a nombrar un método private
con un guión bajo :)
Darse cuenta:
PHP reserva todos los símbolos que comienzan con __ como mágico. Se recomienda que no cree símbolos que comiencen con __ en PHP a menos que quiera usar una funcionalidad mágica documentada.
(Fuente: http://php.net/manual/en/userlandnaming.rules.php )
La mayoría de las veces, es una convención de retroceso a PHP4 que no admite la visibilidad de propiedades o métodos, y los desarrolladores de bibliotecas utilizaron _ para indicar algo que debería considerarse privado y no para acceder directamente desde fuera de la clase. PHP5 tiene visibilidad, pero la convención todavía se mantiene a menudo.