PHPloc, una herramienta de QA para PHP
Por Carlos Nacianceno, @igormx
PHPloc es una herramienta para la rápida medición de líneas de código en un proyecto PHP, fue creada por Sebastian Bergmann creador de PHPUnit.
Como el propio Bergmann lo indica, PHPloc no esta pensada para sustituir a otras herramientas como PHP_CodeSniffer, sino tener una alternativa para cuando requieres un vistazo rápido en tu proyecto (o archivo).
Instalación
Algunas distro de Linux ya la traen instalada, en otras se puede instalar de su respectivo repositorio, y también se puede instalar desde PEAR, así lo hago yo. Uso el path de Zend Server por que quiero que el binario quede ahí.
/usr/local/zend/bin/pear channel-discover pear.phpunit.de
/usr/local/zend/bin/pear channel-discover components.ez.no
/usr/local/zend/bin/pear install –alldeps phpunit/phploc
Así al correr esto:
/usr/local/zend/bin/phploc evaluaciones/
phploc 1.5.1 by Sebastian Bergmann.
Directories: 11
Files: 56
Lines of Code (LOC): 1032
Cyclomatic Complexity / Lines of Code: 0.05
Comment Lines of Code (CLOC): 72
Non-Comment Lines of Code (NCLOC): 960
Namespaces: 0
Interfaces: 0
Classes: 53
Abstract: 0 (0.00%)
Concrete: 53 (100.00%)
Average Class Length (NCLOC): 15
Methods: 55
Scope:
Non-Static: 55 (100.00%)
Static: 0 (0.00%)
Visibility:
Public: 47 (85.45%)
Non-Public: 8 (14.55%)
Average Method Length (NCLOC): 15
Cyclomatic Complexity / Number of Methods: 1.85
Anonymous Functions: 0
Functions: 0
Constants: 2
Global constants: 2
Class constants: 0
La información que me da es muy valiosa, desde luego lo que sale a relucir es el número de archivos, directorios y líneas de código. Pero también nos puede dar una idea de la forma en que estamos programando, pues nos da datos relativos a las clases en nuestro proyecto, a sus métodos y propiedades. Como la cantidad de líneas de código de cada clase y/o método, la visibildad de métodos, y cantidad de métodos estáticos.
Está también la complejidad ciclomática, la cual es una medida cuantitativa de la complejidad lógica de un programa. Estos datos se dan por proyecto en general y un promedio por método.
En las últimas versiones también muestra la cantidad de Namespaces usados en el proyecto.