리팩토링을 위한 좋은 후보를 찾는 데 도움이 됩니다.
churn-php
는 프로젝트에서 리팩토링에 좋은 후보가 될 수 있는 PHP 파일을 식별하는 데 도움이 되는 패키지입니다. 제공된 경로에서 각 PHP 파일을 검사하고 다음을 수행합니다.
결과는 표에 표시됩니다.
많이 변경되고 복잡성이 높은 파일은 많이 변경되지 않고 복잡성이 낮은 파일보다 리팩터링에 더 적합할 수 있습니다.
churn-php
개발자가 리팩토링할 파일을 식별하는 데만 도움을 줍니다. 리팩토링할 파일을 결정하려면 자신의 판단과 더불어 결과를 사용하는 것이 가장 좋습니다.
churn.phar
의 마지막 릴리스를 다운로드하거나 Phive와 함께 설치하세요.
phive install churn
Composer를 통해 churn-php
설치할 수도 있습니다.
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
churn-php를 구성하는 데 사용할 수 있는 선택적 churn.yml
파일을 추가할 수 있습니다. --configuration
옵션을 사용하여 이 파일의 위치를 사용자 정의할 수 있습니다.
# Default: "churn.yml" or "churn.yml.dist"
churn run --configuration=config-dir/ < path >
churn run --configuration=my-config.yml < path >
샘플 churn.yml
파일은 다음과 같습니다.
# 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
churn.yml
파일이 생략되거나 개별 설정이 생략되면 위의 기본값이 사용됩니다.
결과를 다른 형식으로 출력하도록 churn
구성할 수 있습니다. 사용 가능한 형식은 다음과 같습니다.
csv
json
markdown
text
(기본값) 다른 형식을 사용하려면 --format
옵션을 사용하세요. json
에 대한 예제 명령:
churn run --format json
후크 구성을 사용하면 churn
사용자 정의할 수 있습니다.
사용자 정의 후크는 최소한 하나의 후크 인터페이스를 구현해야 합니다.
후크 인터페이스 | 해당 이벤트 인터페이스 |
---|---|
AfterAnalyticHook | 애프터분석 |
AfterFile분석후크 | AfterFile분석 |
BeforeAnalyticHook | 분석전 |
질문, 의견, 피드백이 있으신가요? @bmitch2112
composer test
실행하고 통과하는지 확인하세요.MIT 라이센스(MIT). 자세한 내용은 라이센스 파일을 참조하십시오.