Blog de Gonzalo

ESTANDARES DE PROGRAMACIÓN PSR EN PHP

Supongo que la mayoría de nosotros que ha participado en algún proyecto, en el que hayan participado varias personas, nos hemos quejado de que el código es un desastre y que hay código que no se entiende. Lo aconsejable es seguir los estandares de programación psr en php:

  • PSR-0 (obsoleto): Estandar de autocarga de clases. Habla sobre de como se deberían cargar las clases.
    • Cada namespace debe tener un namespace superior ("Vendor name").
    • Cada namespace puede tener tantos sub-namespaces como se quiera.
    • Los nombres de los namespaces o clases deben ser separados por un guion bajo.
    • Los nombres de los namespaces o clases deben ser ordenadas alfabéticamente.
    • Todos los archivos deben tener la extensión php.
  • PSR-1: Codificación estandar básica. Habla sobre de como se deberían cargar las clases.
    • Los ficheros deben tener codificación UTF-8 sin bom.
    • Los nombres de las clases deben utilizar la notación StudlyCaps (MyNameSpace/MiClase
    • El nombre de las constantes debe estar en mayúsculas.
    • Los nombres de los métodos deben declararse en notación camelCase (getUserOrders()).
  • PSR-2: Guía de estilo de codificación. Es una extensión del PSR-1.
    • No se debe usar tabulaciones. En su lugar, se deben usar cuatro espacios para indentación.
    • No debe existir un límite obligatorio para la longitud de una línea. Aunque lo ideal es que midan ochenta columnas o menos y se considerará error de estilo sobrepasar las 120 columnas. Esto mejora la legibilidad del código al tener un menor recorrido que realizar en horizontal
    • Debe haber una línea en blanco después de la declaración del espacio de nombres y una línea después de todos los use. Esto separa de una manera lógica diferentes secciones de la cabecera de una clase.
    • La apertura de llaves debe estar en la siguiente línea de la declaración de una clase, de una función o de un método, y el cierre justo la línea después del cuerpo. Hacer esto da importancia a la declaración de la clase y hace que se leer sin confusión entre líneas.
    • El paréntesis de apertura de las estructuras de control no deben tener espacio después de él. Del mismo modo, el paréntesis de cierre no debe tener espacio antes de él.
  • PSR-3 - Interfaz de log. No hay mucha información sobre este standard.
  • PSR-4 - Estándar de autocarga de clases.
    • Esta es la nueva manera (aceptada) de trabajar con la autocarga de clases. Muchos de los frameworks y clases que existen adoptan este estandar para realizar la autocarga de clases. Ya hable de esto en: Namespaces y en Composer

Compartir en twitter