CodeSniffer es un script de PHP5 que analiza código PHP para detectar violaciones de un conjunto definido de normas de codificación. Analiza el código fuente para ver si cumple o no con un estándar, ya sea Zend, Pear o uno personalizado.
Junta de Andalucía
CodeSniffer es una herramienta muy sencilla de usar y con uan instalación muy simple que permitirá mantener los estándares de codificación de nuestros proyectos.
La inslatación es muy sencillo, lo primero comprobamos que tengamos instalado CodeSniffer
phpcs -i
Tiene que devolver algo parecido a esta salidad, no exactamente la misma ya que yo ya tengo instalada los estándares de Drupal:
The installed coding standards are Zend, PSR1, PSR12, Squiz, PEAR, MySource, PSR2, Drupal, DrupalPractice and VariableAnalysis
Si no tenemos instalado CodeSniffer lo instalamos:
composer require --dev drupal/core-dev
Y comprobamos que ahora si tengamos instalado el CodeSniffer.
Una vez instalado tenemos que instalar los estándares de código de Drupal:
composer require --dev dealerdirect/phpcodesniffer-composer-installer
Y ya tendríamos instalado lo básico que usar esta herramienta.
Para usar el analizador de CodeSniffer lo ejecutamos de la siguiente manera:
phpcs --standard=Drupal --extensions=php,module web/modules/contrib/
Con esta orden o nos indica que esta todo bien o nos devolverá un informe como el siguiente:
FILE: /var/www/html/web/modules/contrib/devel/devel_generate/src/Commands/DevelGenerateCommands.php
---------------------------------------------------------------------------------------------------------------------------------------------
FOUND 11 ERRORS AND 1 WARNING AFFECTING 12 LINES
---------------------------------------------------------------------------------------------------------------------------------------------
124 | ERROR | [ ] Parameter tags must be defined first in a doc comment
133 | ERROR | [ ] The array declaration extends to column 84 (the limit is 80). The array content should be split up over multiple lines
145 | ERROR | [ ] Parameter tags must be defined first in a doc comment
158 | ERROR | [ ] The array declaration extends to column 195 (the limit is 80). The array content should be split up over multiple lines
170 | ERROR | [ ] Parameter tags must be defined first in a doc comment
189 | ERROR | [ ] Parameter tags must be defined first in a doc comment
214 | ERROR | [ ] Parameter tags must be defined first in a doc comment
230 | ERROR | [ ] The array declaration extends to column 230 (the limit is 80). The array content should be split up over multiple lines
242 | ERROR | [ ] Parameter tags must be defined first in a doc comment
253 | ERROR | [ ] The array declaration extends to column 112 (the limit is 80). The array content should be split up over multiple lines
262 | ERROR | [ ] Parameter tags must be defined first in a doc comment
270 | WARNING | [x] Inline @var declarations should use the /** */ delimiters
---------------------------------------------------------------------------------------------------------------------------------------------
PHPCBF CAN FIX THE 1 MARKED SNIFF VIOLATIONS AUTOMATICALLY
---------------------------------------------------------------------------------------------------------------------------------------------
Ojo, he puesto contrib para analizar algo pero lo normal es solo analizar el código creado por nosotros en el proyecto no el código de la comunidad de Drupal.