Hilft dabei, gute Kandidaten für ein Refactoring zu finden.
churn-php
ist ein Paket, das Ihnen hilft, PHP-Dateien in Ihrem Projekt zu identifizieren, die gute Kandidaten für eine Umgestaltung sein könnten. Es untersucht jede PHP-Datei im angegebenen Pfad und:
Die Ergebnisse werden in einer Tabelle angezeigt:
Eine Datei, die sich häufig ändert und eine hohe Komplexität aufweist, ist möglicherweise ein besserer Kandidat für ein Refactoring als eine Datei, die sich nicht häufig ändert und eine geringe Komplexität aufweist.
churn-php
hilft dem Entwickler nur dabei, Dateien für die Umgestaltung zu identifizieren. Am besten nutzen Sie die Ergebnisse zusätzlich zu Ihrem eigenen Urteilsvermögen, um zu entscheiden, welche Dateien Sie möglicherweise umgestalten möchten.
Laden Sie die letzte Version von churn.phar
herunter oder installieren Sie sie mit Phive:
phive install churn
Sie können churn-php
auch über Composer installieren:
composer require bmitch/churn-php --dev
churn 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
Sie können optional eine churn.yml
Datei hinzufügen, die zum Konfigurieren von churn-php verwendet werden kann. Der Speicherort dieser Datei kann mit der Option --configuration
angepasst werden:
# Default: "churn.yml" or "churn.yml.dist"
churn run --configuration=config-dir/ < path >
churn run --configuration=my-config.yml < path >
Eine Beispieldatei churn.yml
sieht so aus:
# 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
Wenn eine churn.yml
Datei weggelassen wird oder eine einzelne Einstellung weggelassen wird, werden die oben genannten Standardwerte verwendet.
Sie können churn
so konfigurieren, dass das Ergebnis in verschiedenen Formaten ausgegeben wird. Die verfügbaren Formate sind:
csv
json
markdown
text
(Standard) Um ein anderes Format zu verwenden, verwenden Sie die Option --format
. Beispielbefehl für json
:
churn run --format json
Mit der Hooks -Konfiguration können Sie churn
anpassen.
Ein benutzerdefinierter Hook muss mindestens eine Hook-Schnittstelle implementieren:
Hook-Schnittstelle | Entsprechende Ereignisschnittstelle |
---|---|
AfterAnalysisHook | Nach der Analyse |
AfterFileAnalysisHook | AfterFileAnalysis |
BeforeAnalysisHook | Vor der Analyse |
Fragen, Kommentare, Feedback? @bmitch2112
composer test
unter PHP 7.1 aus und stellen Sie sicher, dass er erfolgreich ist.Die MIT-Lizenz (MIT). Weitere Informationen finden Sie in der Lizenzdatei.