Cómo comprobar que tu código cumple los estándares de código

Los estándares de código o estilo de programación describen una serie de reglas por convención para guiarnos en cómo escribir el código. Este conjunto de reglas básicamente describen como debe ser el formateado del código en cuanto a la indentación, nombres de variable, sentencias condicionales, etc.

De este modo el código de un proyecto está más homogeneizado de forma que permite que las personas que participan en el proyecto lo puedan entender más fácilmente.

Drupal también tiene su propio estándar de código para el desarrollo y contribución de módulos. Cuando desarrollamos tratando de seguir esta serie de reglas es muy fácil olvidar aplicar alguna y que no caigamos en la cuenta de que realmente algún punto del estándar de código no se está cumpliendo.

Afortunadamente Drupal dispone de un módulo que nos va a ayudar a detectar e incluso arreglar, en la mayoría de los casos, los estándares de código que estamos incumpliendo. Este módulo se llama Coder.

Coder describe una serie de reglas de coding standard (Drupal y DrupalPractice) para poder emplearlas con la herramienta PHP_CodeSniffer, quien se encarga de detectar y arreglar el código estándar en diversos estándares de PHP como por ejemplo PSR1, PSR2, Zen, etc.. Pero en nuestro caso utilizaremos el de Drupal y lo haremos funcionar de la siguiente manera:

Instalar Coder

Como es una herramienta que sirve para todos nuestros proyectos Drupal hacemos una instalación global mediante composer.

$ composer global require drupal/coder

Configurar PHP_CodeSniffer

Añadimos las reglas para Drupal y DrupalPractice en la configuración de PHP_CodeSniffer mediante enlaces simbólicos:

$ ln -s ~/.composer/vendor/drupal/coder/coder_sniffer/Drupal ~/.composer/vendor/squizlabs/php_codesniffer/CodeSniffer/Standards/Drupal
$ ln -s ~/.composer/vendor/drupal/coder/coder_sniffer/DrupalPractice ~/.composer/vendor/squizlabs/php_codesniffer/CodeSniffer/Standards/DrupalPractice

Para comprobar que está la herramienta correctamente configurada debería aparecernos ya los estándares de Drupal y DrupalPractice al ejecutar:

$ phpcs -i

Funcionamiento

Una vez lo tenemos correctamente configurado ya podemos comprobar el estandard de código de nuestros archivos/carpetas:

$ phpcs –standard=Drupal web/modules/custom/module_example/module_example.module

phpcs resultado por pantalla

Si queremos arreglar automáticamente esos errores, ejecutamos:

$ phpcbf –standard=Drupal web/modules/custom/module_example/module_example.module

phpcbf resultado por pantalla

Conclusión

Sin duda resulta muy beneficioso aplicar los estándares de código para conseguir un código más limpio en nuestros proyectos. Y gracias al módulo de Coder junto con la herramienta de PHP_CodeSniffer el proceso de revisión del código se convierte en una tarea relativamente sencilla.

Además, empleando un poco más de tiempo, en muchos IDEs como PHPStorm o Sublime es posible configurarlo para nuestra comodidad o también nos puede resultar muy útil dentro de nuestro proceso de integración continua pero esto ya lo contaremos en otro post.

Referencias