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