Membantu menemukan kandidat yang baik untuk pemfaktoran ulang.
churn-php adalah paket yang membantu Anda mengidentifikasi file php di proyek Anda yang bisa menjadi kandidat yang baik untuk pemfaktoran ulang. Ia memeriksa setiap file PHP di jalur yang disediakan dan:
Hasilnya ditampilkan dalam tabel:

File yang banyak berubah dan memiliki kompleksitas tinggi mungkin merupakan kandidat yang lebih baik untuk difaktorkan ulang dibandingkan file yang tidak banyak berubah dan memiliki kompleksitas rendah.
churn-php hanya membantu pengembang mengidentifikasi file untuk refactoring. Sebaiknya gunakan hasilnya selain penilaian Anda sendiri untuk memutuskan file mana yang ingin Anda refactor.
Unduh rilis terakhir churn.phar atau instal dengan Phive:
phive install churn Anda juga dapat menginstal churn-php melalui Komposer:
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 Anda dapat menambahkan file churn.yml opsional yang dapat digunakan untuk mengkonfigurasi churn-php. Lokasi file ini dapat dikustomisasi menggunakan opsi --configuration :
# Default: "churn.yml" or "churn.yml.dist"
churn run --configuration=config-dir/ < path >
churn run --configuration=my-config.yml < path > Contoh file churn.yml terlihat seperti:
# 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 Jika file churn.yml dihilangkan atau pengaturan individual dihilangkan, nilai default di atas akan digunakan.
Anda dapat mengonfigurasi churn untuk menampilkan hasilnya dalam format berbeda. Format yang tersedia adalah:
csvjsonmarkdowntext (standar) Untuk menggunakan format lain, gunakan opsi --format . Contoh perintah untuk json :
churn run --format json Konfigurasi hooks memungkinkan Anda menyesuaikan churn .
Hook yang ditentukan pengguna harus mengimplementasikan setidaknya satu antarmuka Hook:
| Antarmuka kait | Antarmuka acara yang sesuai |
|---|---|
| SetelahAnalysisHook | Setelah Analisis |
| SetelahFileAnalysisHook | Setelah Analisis File |
| SebelumAnalysisHook | Sebelum Analisis |
Pertanyaan, komentar, masukan? @bmitch2112
composer test pada PHP 7.1 dan pastikan lulus.Lisensi MIT (MIT). Silakan lihat File Lisensi untuk informasi lebih lanjut.