phpstan extensions
v6.6.0
Phpstan的擴展
要使用此擴展名,請在作曲家中需要它:
composer require --dev slam/phpstan-extensions當您使用phpstan/extension-installer時,將自動包括conf/slam-rules.neon 。
否則,您需要在phpstan.neon中包括conf/slam-rules.neon :
includes :
- vendor/slam/phpstan-extensions/conf/slam-rules.neon SlamPhpStanUnusedVariableRule :檢查初始分配後從未使用過的內部功能SlamPhpStanMissingClosureParameterTypehintRule :需要封閉的參數typehint;警告:不允許PHPDOC,請參閱phpstan/phpstan-strict-rules#87SlamPhpStanStringToClassRule :需要指稱要用::class符號表示的類SlamPhpStanGotoRule :不允許gotoSlamPhpStanClassNotationRule :SlamPhpStanPhpUnitFqcnAnnotationRule :必須存在以下phpunit註釋中的類:@expectedException@covers@coversDefaultClass@usesSlamPhpStanAccessGlobalVariableWithinContextRule :抑制在擴展或實現某個類別/接口的類中訪問全球的訪問SlamPhpStanAccessStaticPropertyWithinModelContextRule :抑制在擴展或實現某個類別/接口的類中對類的靜態屬性的訪問存在一個not-now-rules.neon的列表。
includes :
- vendor/slam/phpstan-extensions/conf/not-now-rules.neon這些規則禁止:
new DateTimeImmutable()new DateTime('yesterday')date('Ym-d')time()strtotime('noon')相反,您應該依靠諸如lcobucci/clock之類的時鐘抽象。
警告:規則不是完美的,用戶可以輕鬆欺騙他們;它們僅是為了幫助過渡到適當的時鐘抽象。
symfony-rules.neon配置存在於Symfony Projects:
includes :
- vendor/slam/phpstan-extensions/conf/symfony-rules.neon具有以下配置:
SlamPhpStanSymfonyFilesystemRule :禁止調用對原始文件系統功能由symfony/filesystem組件包裹得很好SlamPhpStanSymfonyProcessRule :對原始系統的禁止呼叫由symfony/process組件包裹好yii-rules.neon配置存在於YII項目:
includes :
- vendor/slam/phpstan-extensions/conf/yii-rules.neon具有以下配置:
SlamPhpStanAccessGlobalVariableWithinContextRule否認在實現yiidbActiveRecordInterface中使用$_GET , $_POST和其他全球變量SlamPhpStanAccessStaticPropertyWithinModelContextRule否認使用yiiBaseYii靜態變量(如$app在模型中實現yiidbActiveRecordInterface :在模型中訪問singletlets:是抗pattern