PHP_CodeSniffer용 Slevomat 코딩 표준은 세 가지 범주로 분류되는 스니프를 제공합니다.
= 자동 오류 수정
= 스니프 검사를 로컬에서 억제할 수 있음
Slevomat Coding Standard를 설치하는 권장 방법은 Composer를 이용하는 것입니다.
{
"require-dev" : {
"slevomat/coding-standard" : " ~8.0 "
}
}
또한 소스 코드에서 구문 오류를 확인하는 php-parallel-lint/php-parallel-lint를 설치하는 것이 좋습니다. 스니프는 처리된 코드가 구문적으로 유효한 것으로 간주합니다(구문 분석 오류 없음). 그렇지 않으면 예기치 않게 동작할 수 있습니다. PHP_CodeSniffer
실행하고 PHP-Parallel-Lint
PHP-Parallel-Lint
Parallel-Lint를 실행하는 것이 좋습니다.
코드베이스의 표준에서 선택한 스니프만 실행하는 두 가지 방법 중 하나를 선택할 수 있습니다.
권장되는 방법은 선택한 스니프만 참조하여 자신만의 ruleset.xml을 작성하는 것입니다. 이것은 샘플 ruleset.xml입니다.
<? xml version = " 1.0 " ?>
< ruleset name = " AcmeProject " >
< config name = " installed_paths " value = " ../../slevomat/coding-standard " /> <!-- relative path from PHPCS source location -->
< rule ref = " SlevomatCodingStandard.Arrays.TrailingArrayComma " />
<!-- other sniffs to include -->
</ ruleset >
그런 다음 일반적인 방법으로 phpcs
실행 파일을 실행하십시오.
vendor/bin/phpcs --standard=ruleset.xml --extensions=php --tab-width=4 -sp src tests
프로젝트의 ruleset.xml
에서 Slevomat Coding Standard를 언급하고 일부 스니프만 제외할 수도 있습니다.
<? xml version = " 1.0 " ?>
< ruleset name = " AcmeProject " >
< rule ref = " vendor/slevomat/coding-standard/SlevomatCodingStandard/ruleset.xml " > <!-- relative path to your ruleset.xml -->
<!-- sniffs to exclude -->
</ rule >
</ ruleset >
그러나 Slevomat Coding Standard를 사용하는 것은 권장되지 않습니다. 왜냐하면 표준의 부 버전 사이를 이동할 때 빌드가 중단될 수 있기 때문입니다(이는 composer.json
에서 ^
또는 ~
버전 제약 조건을 사용하는 경우 발생할 수 있음). 우리는 마이너 버전에서도 정기적으로 새로운 스니프를 추가합니다. 즉, 귀하의 코드가 패키지의 새로운 마이너 버전을 준수하지 않을 가능성이 높습니다.
기호로 표시된 이 표준의 스니프는 코딩 표준 위반의 자동 수정을 지원합니다. 코드를 자동으로 수정하려면 phpcs 대신 phpcbf를 실행하세요.
vendor/bin/phpcbf --standard=ruleset.xml --extensions=php --tab-width=4 -sp src tests
자동 수정 프로그램이 때때로 원치 않는 결과를 생성할 수 있으므로 자동 수정을 수행하기 전에 항상 코드를 백업하고 직접 눈으로 결과를 확인하는 것을 잊지 마세요.
이 표준에서 기호로 표시된 선택된 스니프는 주석을 사용하여 특정 코드 부분에 대해 억제될 수 있습니다. 다음 예를 고려하십시오.
/**
* @param int $max
*/
public function createProgressBar ( $ max = 0 ): ProgressBar
{
}
$max
매개변수는 기본 int
스칼라 유형 힌트를 가질 수 있습니다. 하지만 상위 클래스의 메서드에는 이 유형 힌트가 없기 때문에 이 메서드도 이를 가질 수 없습니다. PHP_CodeSniffer는 다음 오류를 표시합니다:
----------------------------------------------------------------------
FOUND 1 ERROR AFFECTING 1 LINE
----------------------------------------------------------------------
67 | ERROR | [x] Method ErrorsConsoleStyle::createProgressBar()
| | does not have native type hint for its parameter $max
| | but it should be possible to add it based on @param
| | annotation "int".
| | (SlevomatCodingStandard.TypeHints.ParameterTypeHint.MissingNativeTypeHint)
이 오류를 수정하는 대신 표시하지 않으려면 오류 코드( SlevomatCodingStandard.TypeHints.ParameterTypeHint.MissingNativeTypeHint
)를 가져와 다음과 같이 @phpcsSuppress
주석과 함께 사용할 수 있습니다.
/**
* @phpcsSuppress SlevomatCodingStandard.TypeHints.ParameterTypeHint.MissingNativeTypeHint
* @param int $max
*/
public function createProgressBar ( $ max = 0 ): ProgressBar
{
}
이 리포지토리를 머신에서 작동하게 하려면 이를 복제하고 리포지토리의 루트 디렉터리에서 다음 두 명령을 실행하세요.
composer install
bin/phing
일부 코드를 작성하고 단위 테스트를 편집 또는 추가한 후 phing을 다시 실행하여 모든 것이 정상인지 확인하세요.
bin/phing
우리는 항상 귀하의 버그 보고서, 기능 요청 및 끌어오기 요청을 기다리고 있습니다. 감사합니다.
이 프로젝트는 기여자 행동 강령을 준수합니다. 이 프로젝트와 커뮤니티에 참여함으로써 귀하는 이 강령을 준수해야 합니다.