Ayuda a descubrir buenos candidatos para la refactorización.
churn-php es un paquete que le ayuda a identificar archivos php en su proyecto que podrían ser buenos candidatos para la refactorización. Examina cada archivo PHP en la ruta proporcionada y:
Los resultados se muestran en una tabla:

Un archivo que cambia mucho y tiene una complejidad alta podría ser un mejor candidato para la refactorización que un archivo que no cambia mucho y tiene una complejidad baja.
churn-php solo ayuda al desarrollador a identificar archivos para refactorizar. Es mejor utilizar los resultados además de su propio criterio para decidir qué archivos desea refactorizar.
Descargue la última versión de churn.phar o instálela con Phive:
phive install churn También puedes instalar churn-php a través de Composer:
composer require bmitch/churn-php --devchurn run < one or more paths to source code > ...
churn run src
churn run src tests
# the command name can be skipped if directoriesToScan is set in churn.yml
churn Puede agregar un archivo churn.yml opcional que puede usarse para configurar churn-php. La ubicación de este archivo se puede personalizar usando la opción --configuration :
# Default: "churn.yml" or "churn.yml.dist"
churn run --configuration=config-dir/ < path >
churn run --configuration=my-config.yml < path > Un archivo churn.yml de muestra tiene este aspecto:
# The maximum number of files to display in the results table.
# Default: 10
filesToShow : 10
# The minimum score a file need to display in the results table.
# Disabled if null.
# Default: 0.1
minScoreToShow : 0
# The command returns an 1 exit code if the highest score is greater than the threshold.
# Disabled if null.
# Default: null
maxScoreThreshold : 0.9
# The number of parallel jobs to use when processing files.
# Default: 10
parallelJobs : 10
# How far back in the VCS history to count the number of commits to a file
# Can be a human readable date like 'One week ago' or a date like '2017-07-12'
# Default: '10 Years ago'
commitsSince : One year ago
# Files to ignore when processing. The full path to the file relative to the root of your project is required.
# Also supports regular expressions.
# Default: All PHP files in the path provided to churn-php are processed.
filesToIgnore :
- src/Commands/ChurnCommand.php
- src/Results/ResultsParser.php
- src/Foo/Ba*
# File extensions to use when processing.
# Default: php
fileExtensions :
- php
- inc
# This list is used only if there is no argument when running churn.
# Default: <empty>
directoriesToScan :
- src
- tests/
# List of user-defined hooks.
# They can be referenced by their full qualified class name if churn has access to the autoloader.
# Otherwise the file path can be used as well.
# See below the section about hooks for more details.
# Default: <empty>
hooks :
- NamespaceMyHook
- path/to/my-hook.php
# The version control system used for your project.
# Accepted values: fossil, git, mercurial, subversion, none
# Default: git
vcs : git
# The path of the cache file. It doesn't need to exist before running churn.
# Disabled if null.
# Default: null
cachePath : .churn.cache Si se omite un archivo churn.yml o se omite una configuración individual, se utilizarán los valores predeterminados anteriores.
Puede configurar churn para generar el resultado en diferentes formatos. Los formatos disponibles son:
csvjsonmarkdowntext (predeterminado) Para utilizar un formato diferente, utilice la opción --format . Comando de ejemplo para json :
churn run --format json La configuración de los ganchos le permite personalizar churn .
Un enlace definido por el usuario debe implementar al menos una interfaz de enlace:
| Interfaz de gancho | Interfaz de evento correspondiente |
|---|---|
| Gancho posterior al análisis | Después del análisis |
| Después del análisis de archivos | Después del análisis de archivos |
| Antes del análisis | Antes del análisis |
¿Preguntas, comentarios, opiniones? @bmitch2112
composer test en PHP 7.1 y asegúrese de que pase.La Licencia MIT (MIT). Consulte el archivo de licencia para obtener más información.