El estándar de codificación PSR-2 requiere explícitamente el modificador de visibilidad para ser utilizado tanto para properties como para methods.
No es necesario utilizar public
porque PHP 5 y 7 son compatibles con la versión 4, que solo tenía visibilidad pública para todo, por lo que es la configuración predeterminada.
Sin embargo, omitirlo generará preguntas, como usted. Los humanos son muy buenos para detectar patrones y errores en los patrones. ¿Qué pensaría de un fragmento de código que utiliza protected
o private
en todas partes (porque es necesario), pero omite aleatoriamente public
. ¿Es esto un error? Ha sido hecho intencionalmente? ¿Qué tipo de comportamiento secreto se supone que se desencadenará por esto? ¿O todavía es un código PHP4 que oculta algunos desagradables problemas de compatibilidad? Como desarrollador, no quiere hacer estas preguntas, y no quiere tener que encontrar las respuestas.
public
es opcional, pero el PSR-2 decidió requerirlo. Ve con la recomendación estándar.
También tenga en cuenta que ha habido a proposal to deprecate and remove the var
modifier para propiedades y reemplácela por completo con public
.La propuesta también enumera un análisis de código de los 10,000 mejores paquetes en Packagist, indicando que el 94% de todas las clases en esta base de código usa public
exclusivamente, el 6% restante de las clases que usan var
provienen de cuatro paquetes más grandes que probablemente aún lo intenten ser compatible con PHP4, con "Simpletest" (un marco de pruebas unitarias dirigido a PHP 4) a la cabeza.
No existe este tipo de análisis de código estático para los modificadores de visibilidad de los métodos que conozco, pero la tendencia es claramente visible: Deshágase de los viejos PHP4-ismos.
5 años después ... Aproximadamente el 95% del código PHP que se ve a continuación es desordenado y desactualizado en cuanto a orientación del objeto, legibilidad, encapsulado, etc. Al menos el 80% es pura basura. :(... – dbf