Larastan은 Can Vural과 Nuno Maduro가 제작했으며 @Caneco가 디자인한 아트웍을 얻었고 Can Vural과 Viktor Szépe가 유지 관리하며 Laravel을 위한 PHPStan 확장입니다. Larastan은 코드에서 오류를 찾는 데 중점을 둡니다. 코드에 대한 테스트를 작성하기 전에도 전체 버그 클래스를 포착합니다.
정의에 따르면 "정적 분석"은 애플리케이션의 코드를 로드하지 않습니다. Larastan은 애플리케이션의 컨테이너를 부팅하므로 런타임에만 계산이 가능한 유형을 확인할 수 있습니다. 이것이 바로 우리가 "정적 분석" 대신 "코드 분석"이라는 용어를 사용하는 이유입니다.
라라벨 버전 | 라라스탄 버전 |
---|---|
< 9 | 1.x |
> 9.0 && <11.15 | 2.x |
11.15+ | 3.0+ |
요구사항:
1 : 먼저 Composer를 사용하여 Laravel 프로젝트에 개발 종속성으로 Larastan을 설치할 수 있습니다.
composer require --dev " larastan/larastan:^3.0 "
Laravel 패키지를 분석하기 위해 Larastan을 사용하시나요?
orchestra/testbench
설치해야 할 수도 있습니다.
2 : 그런 다음 애플리케이션 루트에 phpstan.neon
또는 phpstan.neon.dist
파일을 생성합니다. 다음과 같이 보일 수 있습니다:
includes:
- vendor/larastan/larastan/extension.neon
- vendor/nesbot/carbon/extension.neon
parameters:
paths:
- app/
# Level 10 is the highest level
level: 5
# ignoreErrors:
# - '#PHPDoc tag @var#'
#
# excludePaths:
# - ./*/*/FileToBeExcluded.php
사용 가능한 모든 옵션을 보려면 PHPStan 문서( https://phpstan.org/config-reference) 를 살펴보세요.
3 : 마지막으로 phpstan 콘솔 명령을 사용하여 코드 분석을 시작할 수 있습니다.
./vendor/bin/phpstan analyse
Allowed memory size exhausted
오류가 발생하는 경우 --memory-limit
옵션을 사용하여 문제를 해결할 수 있습니다.
./vendor/bin/phpstan analyse --memory-limit=2G
특정 오류를 무시하는 것은 PHP 주석이나 구성 파일에서 수행할 수 있습니다:
// @phpstan-ignore-next-line
$ test -> badMethod ();
$ test -> badMethod (); // @phpstan-ignore-line
PHPStan 구성 파일에서 오류를 무시할 때 오류 메시지를 기반으로 정규식을 작성하면 해당 오류가 무시됩니다.
parameters :
ignoreErrors :
- ' #Call to an undefined method .*badMethod()# '
오래된 코드베이스에서는 높은 PHPStan 레벨을 통과하기 위해 모든 코드를 수정하는 데 시간을 소비하기 어려울 수 있습니다.
이 문제를 해결하기 위해 기준 파일을 생성할 수 있습니다. 기준 파일은 현재 오류가 모두 포함된 구성 파일을 생성하므로 이전 코드보다 더 높은 표준에 따라 새 코드를 작성할 수 있습니다. (PHP스탄 문서)
./vendor/bin/phpstan analyse --generate-baseline
Laravel과 관련된 구성 가능한 규칙 목록은 여기에서 찾을 수 있습니다.
Larastan 기능 목록은 여기에서 확인할 수 있습니다.
Larastan과 관련된 PHPDoc 유형 목록은 여기에서 찾을 수 있습니다.
PHPStan 구성 파일에서 사용할 수 있는 사용자 정의 구성 매개변수 목록은 여기에서 찾을 수 있습니다.
Laravel의 일부 부분은 현재 Larastan/PHPStan이 이해하기에는 너무 마술적입니다. 무시할 일반적인 오류를 나열하고 필요에 따라 추가했습니다.
Larastan에 기여해 주셔서 감사합니다. 여기에는 모든 기여 지침이 언급되어 있습니다.
Larastan은 MIT 라이선스에 따라 라이선스가 부여된 오픈 소스 소프트웨어입니다.