PHPSTAN은 코드를 실행하지 않고 허용되지 않은 전화 등을 감지하는 규칙입니다.
생산 코드에는 사용해서는 안되는 기능, 방법 및 상수가 있습니다. 좋은 예는 var_dump() 입니다. 종종 문제를 신속하게 디버그하는 데 사용되지만 코드를 커밋하기 전에 제거해야합니다. 그리고 때로는 그렇지 않습니다.
또 다른 예는 일반적인 로거입니다. 일반 로깅 라이브러리 중 하나를 사용하고 있지만 일반 로거를 호출하기 전에 더 많은 정보를 추가하거나 데이터를 소독 할 수있는 로거가 있다고 가정 해 봅시다. 코드는 일반 로거를 직접 호출해서는 안되며 대신 사용자 정의 로거를 사용해야합니다.
이 Phpstan 확장은 구성된 경우 이러한 사용법을 감지합니다. 이 확장은 예를 들어 호출을 난독화할 수 있기 때문에 적대적인 개발자를 방어하거나 감지하는 방법이 아닙니다. 이 확장은 또 다른 한 쌍의 눈이되어 자신의 실수를 감지하기위한 것입니다.
테스트는 현재 감지 된 내용을 제공합니다. 테스트로 덮여 있지 않으면 그럴 수 있지만 대부분은 감지되지 않을 것입니다. *Test.php 파일은 테스트이며, 분석 된 테스트 코드는 SRC, LIBS의 필수 테스트 클래스입니다.
더 많은 통화를 감지 해야하는 경우 문제를 제출하거나 풀 요청을 작성하십시오.
작곡가를 사용하여 확장자 설치 :
composer require --dev spaze/phpstan-disallowed-calls
PHP 정적 분석 도구 인 PHPSTAN이 요구 사항입니다.
phpstan/extension-installer를 사용하는 경우 모두 설정되어 구성으로 건너 뛸 수 있습니다.
수동 설치의 경우 phpstan.neon 에 추가하십시오.
includes :
- vendor/spaze/phpstan-disallowed-calls/extension.neon 번들 구성 파일로 시작할 수 있습니다.
확장자는 다양한 사용자 정의 규칙을 지원합니다.
사용자 정의 규칙으로 foo() 허용하지 않았다고 가정 해 봅시다. 그러나 사용자 정의 래퍼에서 사용될 때 또는 첫 번째 매개 변수가 지정된 값과 동일하거나 그렇지 않은 경우에 재발하려고합니다. 확장자는 여러 가지 방법을 제공합니다.
속성을 재구성하면 유사한 구성이 사용됩니다.
제공된 생성기를 사용하여 PHP의 disable_functions & disable_classes 구성 지시서에서 구성 스 니펫을 생성하십시오.
------ --------------------------------------------------------
Line libraries/Report/Processor/CertificateTransparency.php
------ --------------------------------------------------------
116 Calling var_dump() is forbidden, use logger instead
------ --------------------------------------------------------
함수 이름, 메소드 이름, 클래스 이름, 네임 스페이스는 사례에 관계없이 일치합니다 ( print_r 허용하지 않으면 print_R 호출도 찾을 수 없음).
다른 PHPSTAN 규칙 없이이 확장자를 사용할 수도 있습니다. 예를 들어 일부 호출 또는 사용에 대한 타사 코드를 확인하려는 경우 유용 할 수 있습니다.
기여하고 싶다면 (대단한, 감사합니다!), 기여에 대한 테스트를 추가/실행해야합니다. 먼저 composer install 실행하여 Dev Dependencies를 설치 한 다음 composer test 통해 PhPunit 테스트를 실행하고 composer.json 의 scripts 참조하십시오. 테스트는 각 푸시마다 조치를 취하면서 GitHub에서 실행됩니다.
composer cs-fix 실행하여 코딩 스타일 문제를 자동으로 수정할 수 있습니다.
약간 다른 구성을 가진 유사한 프로젝트가 있으며 거의 동시에 생성되었습니다 (며칠 만 차이) : Phpstan 금지 코드.