slam / phpstan-extensions
phpstan的Slam扩展
v6.4.1
2024-08-01 13:49 UTC
Requires
- php: ~8.2.0 || ~8.3.0
- phpstan/phpstan: ^1.11.8
Requires (Dev)
- nette/di: ^3.2.2
- nette/neon: ^3.4.3
- nikic/php-parser: ^4.19.1 || ^5.0.2
- phpstan/phpstan-phpunit: ^1.4.0
- phpunit/phpunit: ^11.2.9
- slam/php-cs-fixer-extensions: ^3.11.1
This package is auto-updated.
Last update: 2024-09-19 12:47:53 UTC
README
PHPStan的扩展
安装
要使用此扩展,请在Composer中要求它
composer require --dev slam/phpstan-extensions
用法
当您使用phpstan/extension-installer
时,conf/slam-rules.neon
将自动包含。
否则,您需要将conf/slam-rules.neon
包含在您的phpstan.neon
中
includes: - vendor/slam/phpstan-extensions/conf/slam-rules.neon
规则
SlamPhpStan\UnusedVariableRule
:检查函数内部在初始赋值后未使用的变量SlamPhpStan\MissingClosureParameterTypehintRule
:要求闭包参数类型提示;警告:不允许PhpDoc,请参阅phpstan/phpstan-strict-rules#87
SlamPhpStan\StringToClassRule
:要求引用类的字符串以::class
表示法表示SlamPhpStan\GotoRule
:不允许gotoSlamPhpStan\ClassNotationRule
:- 接口必须以"Interface"结尾
- 特质必须以"Trait"结尾
- 抽象类必须以"Abstract"开头
- 异常必须以"Exception"结尾
SlamPhpStan\PhpUnitFqcnAnnotationRule
:以下PHPUnit注解中找到的类必须存在@expectedException
@covers
@coversDefaultClass
@uses
SlamPhpStan\AccessGlobalVariableWithinContextRule
:禁止在扩展或实现特定类/接口的类中访问全局变量SlamPhpStan\AccessStaticPropertyWithinModelContextRule
:禁止在扩展或实现特定类/接口的类中访问类的静态属性,在模型中禁止使用单例很有用
Not-NOW配置
存在一个用于禁止原始日期系统调用的not-now-rules.neon
配置
includes: - vendor/slam/phpstan-extensions/conf/not-now-rules.neon
这些规则禁止
new DateTimeImmutable()
new DateTime('yesterday')
date('Y-m-d')
time()
strtotime('noon')
您应该依靠像lcobucci/clock
这样的时钟抽象。
警告:规则并不完美,用户可以轻易地绕过它们;它们仅用于帮助过渡到适当的时钟抽象。
Symfony特定的配置
存在一个用于Symfony项目的symfony-rules.neon
配置
includes: - vendor/slam/phpstan-extensions/conf/symfony-rules.neon
以下配置
SlamPhpStan\SymfonyFilesystemRule
:禁止调用由symfony/filesystem
组件良好封装的原始文件系统函数SlamPhpStan\SymfonyProcessRule
:禁止调用由symfony/process
组件良好封装的原始系统函数
Yii特定的配置
存在一个用于Yii项目的yii-rules.neon
配置
includes: - vendor/slam/phpstan-extensions/conf/yii-rules.neon
以下配置
SlamPhpStan\AccessGlobalVariableWithinContextRule
:拒绝在实现yii\db\ActiveRecordInterface
的模型中使用$_GET
、$_POST
和其他全局变量:在模型中访问单例被认为是一种反模式SlamPhpStan\AccessStaticPropertyWithinModelContextRule
:拒绝在实现yii\db\ActiveRecordInterface
的模型中使用yii\BaseYii
静态变量,如$app
:在模型中访问单例被认为是一种反模式