Mejorando la calidad del software: PHP Mess Detector
Desarrollar un buen software no se basa únicamente en cumplir una serie de requisitos funcionales, si no que va mucho más allá, se trata de realizar un buen diseño de la solución haciendo uso de los patrones de diseño, también debemos de seguir las buenas prácticas, comentar el código, y por supuesto, evitar una serie de prácticas que trataremos a continuación y para las que PHPMD (PHP Mess Detector) nos va a ayudar. El objetivo final es obtener un código limpio, mucho más mantenible, reutilizable, y que en definitiva, sea de calidad.
Hay mucho sobre lo que hablar en relación a los buenos diseños y a la calidad del software, pero hoy nos vamos a centrar principalmente en una herramienta que nos va a ayudar a detectar un conjunto de malas prácticas, de manera que antes de dar por finalizado nuestro desarrollo, comprobemos que nuestro código está a salvo de estas malas prácticas.
PHP Mess Detector es una herramienta muy extendida en el desarrollo PHP, está basada en PHP Depend, que es una herramienta para el cálculo de métricas sobre el código. PHP Mess Detector basa su análisis en varios conjuntos de reglas, estos son:
-
Código limpio
-
Nombrado
-
Tamaño del código
-
Diseño
-
Código no usado
Además de un sexto bloque que incluye reglas consideradas polémicas y que se pueden activar a la hora de realizar el análisis del código. Se pueden ver todas las reglas que se incluyen en cada conjunto en la documentación oficial.
Además, PHP Mess Detector tiene una característica muy potente, y es que además de poder testear nuestro código contra estos conjuntos de regla, nos permite diseñar nuestras propias reglas y conjuntos, con lo que podemos adecuar su uso a nuestros casos particulares.
Cómo funciona PHP Mess Detector
Su instalación es bastante sencilla, tan sólo debemos cumplir con los requisitos (PHP 5.3 o superior y PHP_Depend 2.0 o superior). Las opciones para descargarlo son muchas, via composer, desde el repositorio de GitHub, mediante PEAR…
Una vez instalado, podemos analizar nuestro código desde la consola siguiendo el siguiente formato:
$ phpmd rutaParaAnalizar formatoDeSalida conjuntosDeReglas
Por ejemplo, si queremos analizar nuestra carpeta src, ver la salida mediante texto en la consola y utilizar las reglas de nombrado y tamaño del código, el comando que tendríamos que utilizar sería el siguiente:
$ phpmd /var/www/src text naming,codesize
Podemos recibir el informe en un fichero en vez de mediante texto en la terminal, para ello debemos usar la opción --reportfile. El mismo ejemplo de antes pero obteniendo el informe en un fichero xml sería así:
$ phpmd /var/www/src xml naming,codesize --reportfile report.xml
Además de esto, PHP Mess Detector nos permite configurarlo de manera que podamos analizar nuestro código directamente en PHP Storm, de manera que en cualquier momento podamos obtener desde el propio IDE un análisis detallado del conjunto de reglas que queramos.
En la web de Jetbrains podemos ver los pasos para instalar el plugin de PHPMD en nuestro IDE y su configuración. Una vez que hemos realizado esto, en cualquier momento podemos analizar nuestro código desde el menú code/Inspect code o en la estructura del proyecto haciendo clic derecho sobre una carpeta o fichero a analizar y pulsando en Inspect code.
Como hemos visto PHP Mess Detector es una herramienta muy útil a la hora de desarrollar y verificar la calidad de nuestro código, además dispone de más opciones y posibilidades, con lo que es muy recomendable leer la documentación completa.