Com comprovar que el teu codi compleix els estàndards de codi

Els estàndards de codi o d’estil de programació descriuen una sèrie de regles per convenció per a guiar-nos en com escriure el nostre codi font. Aquest conjunt de regles descriuen bàsicament com s’ha de donar format al codi font pel que fa a la seva indentació, nombre de variables, sentències condicionals, etc.

Així el codi d’un projecte està més homogeneïtzat de forma que permet que les persones que participen al projecte el puguin entendre més fàcilment.

El Drupal també té el seu propi estàndard de codi per al desenvolupament i contribució de mòduls. Quan desenvolupem intentant seguir aquesta sèrie de regles, és molt fàcil oblidar d’aplicar alguna d’aquestes i que no ens n’adonem que realment algun punt de l’estàndard de codi no s’està complint.

Per sort el Drupal disposa d’una mòdul que ens ajudarà a detectar i fins i tot arreglar, sovint, els estàndards de codi que estem incomplint. Aquest mòdul s’anomena Coder.

El Coder descriu una sèrie de regles d’estàndards de codi (Drupal i DrupalPractice) per a poder usar-les amb l’eina PHP_CodeSniffer, que s’encarrega de detectar i fer seguir l’estàndard de codi en diversos estàndards del PHP com per exemple el PSR1, PSR2, Zen, etc. Però en el nostre cas utilitzarem el del Drupal i el farem funcionar de la següent forma:

Instal·lant el Coder

Al ser una eina que serveix per a tots els nostres projecte Drupal farem una instal·lació global mitjançant composer.

$ composer global require drupal/coder

Configurant el PHP_CodeSniffer

Afegim les regles per al Drupal i el DrupalPractive a la configuració del PHP_CodeSniffer usant enllaços simbòlics:

$ 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

Per a comprovar que l’eina està correctament configurada ens hauria d’aparèixer ja els estàndards del Drupal i del DrupalPractice a l’executar:

$ phpcs -i

Funcionament

Un cop ho tenim tot correctament configurat ja podem comprovar l’estàndard de codi dels nostres fitxers/directoris:

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

phpcs resultat de pantalla

Si volem arreglar automàticament aquests errors, executem:

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

phpcbf resultat de pantalla

Conclusió

Sense cap dubte, resulta molt beneficiós aplicar els estàndards de codi per aconseguir un codi més net als nostres projectes. I gràcies al mòdul Coder, juntament amb l’eina PHP_CodeSniffer, el procés de revisió de codi es converteixen en una tasca relativament senzilla.

A més a més, si dediquem una mica de temps, a molts IDEs com PHPStorm o Sublime Text és possible configurar-los per a la nostra comoditat o també ens pot ser molt útil dins dels nostres processos d’integració contínua, però això ja ho comentarem en una altra publicació més endavant.

Referències