PHP CodeSniffer en Symfony o como Standalone (PHPCS)

PHP CodeSniffer es una herramienta que comprueba el cumplimiento de ciertas reglas de estilo al escribir scripts en PHP. Se divide en dos: phpcs y phpcbf

El primero, se utiliza para mostrar errores de estilo y en que líneas se encuentran. El segundo, el phpcbf, arregla automáticamente nuestros scripts, corrigiendo los errores de estilo que pueda contener.

En mi caso particular, uso el estándar PSR-2 y algunas de sus reglas son:

  • Se basa en el PSR-1
  • Se usan 4 espacios para indentar y no un tab.
  • Debe haber una línea en blanco antes del namespace y una después del bloque declarativo use.
  • Las llaves de clases y métodos deben ir en la siguiente línea y las que cierran una después del cuerpo.
  • Las estructuras de control deben tener un espacio en blanco antes del paréntesis.
  • Las llaves de las estructuras de control, deben ir en la misma línea y las de cierre, una línea abajo del cuerpo.
  • Los paréntesis de apertura de una estructura de control no deben tener un espacio en blanco después y las de cierre, no deben tenerlo antes.

Después de saber un poco sobre PHP Codesniffer y el estándar PSR-2, vamos a poner manos a la obra. Comenzaremos con su instalación y uso bajo Symfony.

Instalación de PHP CodeSniffer bajo Symfony

Usaremos la siguiente solución:
https://github.com/squizlabs/PHP_CodeSniffer

Lo primero es ir a nuestro proyecto con Symfony y desde la raíz, invocar  composer:

Como siguiente paso les recomiendo hacer un enlace simbólico, ya que acostumbrados a Symfony, lo mejor sería invocarlo desde bin/phpcs y bin/phpcbf. Esto no es obligado, se pueden saltar este paso.

Uso de la herramienta:

Si hicimos el enlace simbólico desde vendor, el comando queda de la siguiente forma, en donde “src” es el directorio que queremos revisar y PSR-2 es el estándar que preferimos. El -n sirve para omitir las advertencias (si nos ponemos más estrictos, podríamos quitarle esta opción) y el -p nos mostrará el progreso de la revisión.

Con el comando anterior, se revisan todos los ficheros dentro de src. Para revisar un archivo en solitario, sólo le pasamos como argumento la ruta completa.

Para usarlo desde vendor:

Para un archivo en particular, la fórmula es la misma:

La salida debe ser algo así:

Ahora toca revisar el código y vemos que en efecto, la llave no está en una nueva línea:

Para arreglarlo, tenemos dos opciones. La primera es hacerlo manual, como yo lo prefiero, esto me enseña a escribir mucho mejor desde el principio y me puedo dar cuenta en donde se me escapó algo. La segunda forma es usando al hermano de phpcs.

Bienvenido phpcbf. 

Esta herramienta nos puede corregir casi todos los errores de estilo en un archivo PHP. Además, al terminar nos da un util resumen de lo que hizo. Para utilizarla podemos atacar un directorio completo, como en el siguiente ejemplo o pasar la ruta completa a un archivo en particular.

Las opciones en este caso son, el estándar (PSR-2) y el -p que nos muestra el progreso.

Después de procesar todo el directorio, nos mostrará algo similar a:

Si revisamos el mismo archivo ahora veremos la llave en donde corresponde, una línea después de la declaración de la función:

¡Eso es todo!
Ahora veremos como hacer la instalación como standalone, es decir, para nuestro código php que no use Symfony o algún otro Framework.

Instalación como Standalone

Empezamos con phpcs. Lo primero es descargarlo, después le cambiamos los permisos y moveremos el ejecutable a una ruta de nuestro PATH.

Ahora es turno del phpcbf, haremos lo mismo:

Suscribete ahora

Suscríbete y recibe información valiosa sobre UI, UX, CX y otras soluciones informáticas