Drupal

PHP CodeSniffer amb Drupal 7/8

En una entrada anterior vam veure com fer servir l’eina PHP CodeSniffer per garantir que el codi dels nostres mòduls per a Drupal 7 compleixen els estàndards de Drupal. Avui us expliquem com utilitzar la mateixa eina, però per a mòduls Drupal 7/8. A més a més, a diferència de l’altre entrada, avui parlarem de com corregir automàticament algun dels errors detectats. Abans de res, recordem què és PHP CodeSniffer.

Drauta agencia digitalDrauta

PHP CodeSniffer amb Drupal 7/8

Què és PHP CodeSniffer?

PHP_CodeSniffer és una llibreria que ens permet escanejar el codi font dels nostres projectes en funció d'un conjunt de regles anomenades Sniffs per tal de saber si es compleixen o no. Per a Drupal existeixen dos Sniffs: Drupal i DrupalPractice. El primer comprova regles més genèriques i el segon ajuda als desenvolupadors de mòduls a evitar els errors més comuns.

Com instal·lar PHP CodeSniffer?

Per a instal·lar-ho al nostre entorn de desenvolupament haurem de seguir els següents passos (instruccions per a Drupal 7/8 en un entorn Macintosh):

  1. Descarreguem la última versió de la branca 2.x de l'eina al projecte de GitHub: https://github.com/squizlabs/PHP_CodeSniffer/tree/2.9
  2. Ho descomprimim tot a una carpeta, preferiblement amb una ruta curta (per exemple a la home del nostre usuari del Mac). Arribats a aquest punt només ens falta obtenir els dos Sniffs de Drupal.
  3. Descarreguem la última versió del mòdul coder (branca 8.x-2.x): https://www.drupal.org/project/coder
Aquest mòdul no és un mòdul normal, ja que no li fa falta instal·lació. Només ens interessa copiar els seus Sniffs a un directori concret. Els dos Sniffs serveixen per validar codi per a Drupal 7 i 8.
  4. Un cop descomprimit, copiem la carpeta coder/coder_sniffer/Drupal a dins de PHP_CodeSniffer/CodeSniffer/Standards.
  5. Un cop fet, copiem la carpeta coder/coder_sniffer/DrupalPractice a dins de PHP_CodeSniffer/CodeSniffer/Standards.
  6. Editem el bash_profile amb la comanda vi ~/.bash_profile i afegim les tres línies del requadre al fitxer (IMPORTANT: haureu de canviar la ruta al PHP_CodeSniffer en funció del lloc a on l'hagueu instal·lat vosaltres). Un cop afegides les dues línies, guardem el fitxer i executem la comanda source ~/.bash_profile perquè els canvis tinguin efecte.
    alias drupalcs="php /Users/drauta/PHP_CodeSniffer/scripts/phpcs 
    --standard=Drupal --extensions='php,module,inc,install,test,profile,theme,css,info,txt,md'"
    
    alias drupalcsp="php /Users/drauta/PHP_CodeSniffer/scripts/phpcs 
    --standard=DrupalPractice --extensions='php,module,inc,install,test,profile,theme,css,info,txt,md'"
    
    alias drupalcbf="php /Users/rcodina/PHP_CodeSniffer/scripts/phpcbf 
    --standard=Drupal --extensions='php,module,inc,install,test,profile,theme,css,info,txt,md'"
  7. Anem al directori del mòdul que volem escanejar i fem les comprovacions necessàries amb les comandes drupalcs (Sniff Drupal), drupalcsp (Sniff DrupalPractice) i drupalcbf (basat en Sniff Drupal). Al executar qualsevol de les dues primeres comandes, obtindrem un llistat d'errors/avisos dels nostres fitxers PHP. Un cop aquestes comandes no retornin cap missatge, voldrà dir que el nostre fitxer/projecte compleix ja amb tots els estàndards de Drupal. En canvi, la tercera comanda corregeix automàticament alguns dels problemes detectats per l’Sniff Drupal (identificació del codi, col·locació de claus, espais entre operadors, etc). Al requadre de sota podem veure com executar les tres comandes.
    drupalcs NOM_FITXER
    drupalcs *
    drupalcsp NOM_FITXER
    drupalcsp *
    drupalcbf NOM_FITXER
    drupalcbf *

Més informació:

https://www.drupal.org/node/1419988
https://www.drupal.org/node/1587138
https://www.drauta.com/herramientas-de-soporte-para-el-desarrollo-drupal-php-codesniffer

 

Vols començar un nou projecte amb nosaltres?

Necessites un servei per a la teva web? Descobreix com et podem ajudar i no dubtis en contactar amb nosaltres.