Phpcodearcheology
PHPCodearcheology analiza su proyecto PHP, proporcionando métricas detalladas sobre archivos, clases, métodos y funciones. El informe HTML integral lo equipa con información profunda necesarias para evaluar su proyecto.
¿Por qué phpcodearcheology?
PHPCodearcheology fue creado para ayudar a los desarrolladores a obtener una comprensión más profunda de su base de código PHP al proporcionar métricas y ideas detalladas. Ya sea que esté manteniendo un sistema heredado o trabajando en un nuevo proyecto, esta herramienta tiene como objetivo facilitar una mejor calidad y mantenimiento del código.
Requisitos previos
Asegúrese de que su entorno cumpla con los siguientes requisitos:
- PHP versión 8.2 o superior
- Compositor instalado
Instalación
Instale phpCodearcheology usando el compositor ejecutando el siguiente comando en su terminal:
composer require --dev php-code-archeology/php-code-archeology
Comienzo rápido
Para iniciar phpcodearcheology, ejecute el siguiente comando en su proyecto Root:
./vendor/bin/phpcodearcheology
Fuera de la caja, PhpCodearcheology escanea su Dir SRC y crea el informe en TMP/Informe .
Para personalizar el escaneo, como incluir o excluir las carpetas, definir extensiones de archivos PHP personalizadas u otras configuraciones, cree un archivo de configuración php-codearch-config.yaml en la raíz de su proyecto. Consulte este archivo de configuración de muestra para obtener orientación.
El informe
Un informe típico generado por PHPCodearcheology incluye métricas como:
- Archivos : número total de archivos en el proyecto.
- Errores de archivo : recuento de errores encontrados en los archivos.
- Recuento de funciones : número total de funciones.
- Recuento de clases : número total de clases.
- Clases abstractas : recuento de clases abstractas.
- Recuento de interfaz : número total de interfaces.
- Recuento de métodos : número total de métodos, incluidos métodos públicos, privados y estáticos.
- Métodos públicos : recuento de métodos públicos.
- Métodos privados : recuento de métodos privados.
- Métodos estáticos : recuento de métodos estáticos.
- Declaraciones de salida : Recuento de llamadas ECHO e printf.
- Líneas de código (LOC) : líneas totales de código, incluidos comentarios y líneas vacías.
- Líneas lógicas de código (LLOC) : líneas totales de código que excluyen comentarios y líneas vacías.
- Comentario Líneas de código (CLOC) : líneas de código que contienen comentarios.
- HTML Líneas de código : líneas de código que contienen HTML.
- Complejidad ciclomática (CC) : una medida de la complejidad del código.
- Índice de mantenimiento (MI) : un índice que indica la capacidad de mantenimiento del código.
- LCOM : Falta de cohesión de los métodos en las clases.
- Inestabilidad : medida de la estabilidad de una clase basada en sus dependencias.
- Acoplamiento eferente (CE) : número de clases en las que depende una clase.
- Acoplamiento aferente (CA) : número de clases que dependen de una clase.
- Dificultad : medida de lo difícil que es el código de entender.
- Esfuerzo : estimación del esfuerzo requerido para comprender el código.
- Vocabulario : número de operadores y operadores únicos en el código.
- Longitud : número total de operadores y operandos en el código.
- Volumen : El tamaño del vocabulario y la longitud del código.
- Peso de comentarios : el peso de los comentarios en el código.
- Distancia desde la línea principal : medida de cuán abstracta y estable es una clase.
Aquí hay una captura de pantalla de muestra del informe HTML:

Documentación
Actualmente estoy trabajando en la documentación. Dado que utilizo principalmente la herramienta para mis propios proyectos y estoy enfocado en su desarrollo continuo, podría llevar algún tiempo completar una documentación integral.
Autor
Marcus Kober, @mrcskbr, Github