localheinz / phpstan-rules
Requires
- php: ~8.1.0 || ~8.2.0 || ~8.3.0
- ext-mbstring: *
- nikic/php-parser: ^4.2.3 || ^5.0.0
- phpstan/phpstan: ^1.10.21
Requires (Dev)
- doctrine/orm: ^3.0.0
- ergebnis/composer-normalize: ^2.42.0
- ergebnis/license: ^2.4.0
- ergebnis/php-cs-fixer-config: ^6.22.0
- ergebnis/phpunit-slow-test-detector: ^2.10.0
- nette/di: ^3.2.0
- phpstan/phpstan-deprecation-rules: ^1.1.4
- phpstan/phpstan-strict-rules: ^1.5.2
- phpunit/phpunit: ^10.5.10
- psalm/plugin-phpunit: ~0.18.4
- psr/container: ^2.0.2
- rector/rector: ^1.0.0
- vimeo/psalm: ^5.21.1
- dev-main
- 2.2.0
- 2.1.0
- 2.0.0
- 1.0.0
- 0.15.3
- 0.15.2
- 0.15.1
- 0.15.0
- 0.14.4
- 0.14.3
- 0.14.2
- 0.14.1
- 0.14.0
- 0.13.0
- 0.12.2
- 0.12.1
- 0.12.0
- 0.11.0
- 0.10.0
- 0.9.1
- 0.9.0
- 0.8.1
- 0.8.0
- 0.7.1
- 0.7.0
- 0.6.0
- 0.5.0
- 0.4.0
- 0.3.0
- 0.2.0
- 0.1.0
- dev-dependabot/composer/phpstan/phpstan-deprecation-rules-1.2.1
- dev-fix/final-in-abstract-class
This package is auto-updated.
Last update: 2024-09-12 09:34:09 UTC
README
此项目提供了一个 composer
软件包,其中包含用于 phpstan/phpstan
的规则。
安装
运行
composer require --dev ergebnis/phpstan-rules
使用
此库提供(并使用)的所有规则均包含在 rules.neon
中。
当您使用 phpstan/extension-installer
时,rules.neon
将自动包含。
否则您需要将 rules.neon
包含在您的 phpstan.neon
中
includes: - vendor/ergebnis/phpstan-rules/rules.neon
💡 您可能希望在以下规则之上使用这些规则:
规则
此软件包为使用 phpstan/phpstan
提供以下规则
Ergebnis\PHPStan\Rules\Classes\FinalRule
Ergebnis\PHPStan\Rules\Classes\NoExtendsRule
Ergebnis\PHPStan\Rules\Classes\PHPUnit\Framework\TestCaseWithSuffixRule
Ergebnis\PHPStan\Rules\Closures\NoNullableReturnTypeDeclarationRule
Ergebnis\PHPStan\Rules\Closures\NoParameterWithNullableTypeDeclarationRule
Ergebnis\PHPStan\Rules\Closures\NoParameterWithNullDefaultValueRule
Ergebnis\PHPStan\Rules\Expressions\NoCompactRule
Ergebnis\PHPStan\Rules\Expressions\NoErrorSuppressionRule
Ergebnis\PHPStan\Rules\Expressions\NoEvalRule
Ergebnis\PHPStan\Rules\Expressions\NoIssetRule
Ergebnis\PHPStan\Rules\Files\DeclareStrictTypesRule
Ergebnis\PHPStan\Rules\Functions\NoNullableReturnTypeDeclarationRule
Ergebnis\PHPStan\Rules\Functions\NoParameterWithNullableTypeDeclaration
Ergebnis\PHPStan\Rules\Functions\NoParameterWithNullDefaultValueRule
Ergebnis\PHPStan\Rules\Methods\FinalInAbstractClassRule
Ergebnis\PHPStan\Rules\Methods\NoConstructorParameterWithDefaultValueRule
Ergebnis\PHPStan\Rules\Methods\NoNullableReturnTypeDeclarationRule
Ergebnis\PHPStan\Rules\Methods\NoParameterWithContainerTypeDeclarationRule
Ergebnis\PHPStan\Rules\Methods\NoParameterWithNullableTypeDeclarationRule
Ergebnis\PHPStan\Rules\Methods\NoParameterWithNullDefaultValueRule
Ergebnis\PHPStan\Rules\Methods\PrivateInFinalClassRule
Ergebnis\PHPStan\Rules\Statements\NoSwitchRule
类
类\FinalRule
此规则在非匿名类不是 final
时报告错误。
💡 此规则忽略使用以下注解的类:
- 使用
@Entity
、@ORM\Entity
或@ORM\Mapping\Entity
注解 - 使用
Doctrine\ORM\Mapping\Entity
属性
在类级别上。
禁用此规则
您可以将 enabled
参数设置为 false
来禁用此规则。
parameters: ergebnis: final: enabled: false
不允许 abstract
类
默认情况下,此规则允许声明 abstract
类。
您可以将 allowAbstractClasses
参数设置为 false
来不允许抽象类。
parameters: ergebnis: final: allowAbstractClasses: false
排除类检查
您可以将 classesNotRequiredToBeAbstractOrFinal
参数设置为您想要从检查中排除的类名列表。
parameters: ergebnis: final: classesNotRequiredToBeAbstractOrFinal: - Foo\Bar\NeitherAbstractNorFinal - Bar\Baz\NeitherAbstractNorFinal
类\NoExtendsRule
此规则在类扩展另一个类时报告错误。
默认值
默认情况下,此规则允许以下类被扩展:
禁用此规则
您可以将 enabled
参数设置为 false
来禁用此规则。
parameters: ergebnis: noExtends: enabled: false
允许类被扩展
您可以将classesAllowedToBeExtended
参数设置为允许扩展的类名列表。
parameters: ergebnis: noExtends: classesAllowedToBeExtended: - Ergebnis\PHPStan\Rules\Test\Integration\AbstractTestCase - Ergebnis\PHPStan\Rules\Test\Integration\AbstractTestCase
Classes\PHPUnit\Framework\TestCaseWithSuffixRule
此规则在具体类是PHPUnit\Framework\TestCase
的子类但未包含Test
后缀时报告错误。
禁用此规则
您可以将 enabled
参数设置为 false
来禁用此规则。
parameters: ergebnis: testCaseWithSuffix: enabled: false
闭包
Closures\NoNullableReturnTypeDeclarationRule
此规则在闭包使用可空返回类型声明时报告错误。
禁用此规则
您可以将 enabled
参数设置为 false
来禁用此规则。
parameters: ergebnis: noNullableReturnTypeDeclaration: enabled: false
Closures\NoParameterWithNullableTypeDeclarationRule
此规则在闭包有具有可空类型声明的参数时报告错误。
禁用此规则
您可以将 enabled
参数设置为 false
来禁用此规则。
parameters: ergebnis: noParameterWithNullableTypeDeclaration: enabled: false
Closures\NoParameterWithNullDefaultValueRule
此规则在闭包有默认值为null
的参数时报告错误。
禁用此规则
您可以将 enabled
参数设置为 false
来禁用此规则。
parameters: ergebnis: noParameterWithNullDefaultValue: enabled: false
表达式
Expressions\NoCompactRule
此规则在函数compact()
被使用时报告错误。
禁用此规则
您可以将 enabled
参数设置为 false
来禁用此规则。
parameters: ergebnis: noCompact: enabled: false
Expressions\NoEvalRule
此规则在语言构造eval()
被使用时报告错误。
禁用此规则
您可以将 enabled
参数设置为 false
来禁用此规则。
parameters: ergebnis: noEval: enabled: false
Expressions\NoErrorSuppressionRule
此规则在@
被用于抑制错误时报告错误。
禁用此规则
您可以将 enabled
参数设置为 false
来禁用此规则。
parameters: ergebnis: noErrorSuppression: enabled: false
Expressions\NoIssetRule
此规则在语言构造isset()
被使用时报告错误。
禁用此规则
您可以将 enabled
参数设置为 false
来禁用此规则。
parameters: ergebnis: noIsset: enabled: false
文件
Files\DeclareStrictTypesRule
此规则在非空文件不包含declare(strict_types=1)
声明时报告错误。
禁用此规则
您可以将 enabled
参数设置为 false
来禁用此规则。
parameters: ergebnis: declareStrictTypes: enabled: false
函数
Functions\NoNullableReturnTypeDeclarationRule
此规则在函数使用可空返回类型声明时报告错误。
禁用此规则
您可以将 enabled
参数设置为 false
来禁用此规则。
parameters: ergebnis: noNullableReturnTypeDeclaration: enabled: false
Functions\NoParameterWithNullableTypeDeclarationRule
此规则在函数有具有可空类型声明的参数时报告错误。
禁用此规则
您可以将 enabled
参数设置为 false
来禁用此规则。
parameters: ergebnis: noParameterWithNullableTypeDeclaration: enabled: false
Functions\NoParameterWithNullDefaultValueRule
此规则在函数有默认值为null
的参数时报告错误。
禁用此规则
您可以将 enabled
参数设置为 false
来禁用此规则。
parameters: ergebnis: noParameterWithNullDefaultValue: enabled: false
方法
Methods\FinalInAbstractClassRule
此规则在抽象类中的具体public
或protected
方法不是final
时报告错误。
禁用此规则
您可以将 enabled
参数设置为 false
来禁用此规则。
parameters: ergebnis: finalInAbstractClass: enabled: false
Methods\NoConstructorParameterWithDefaultValueRule
此规则在匿名类中声明
- 一个类中
- 的构造函数
有默认值时报告错误。
禁用此规则
您可以将 enabled
参数设置为 false
来禁用此规则。
parameters: ergebnis: noConstructorParameterWithDefaultValue: enabled: false
Methods\NoNullableReturnTypeDeclarationRule
此规则在接口中声明
- 一个类中
- 的构造函数
- 的方法
使用可空返回类型声明时报告错误。
禁用此规则
您可以将 enabled
参数设置为 false
来禁用此规则。
parameters: ergebnis: noNullableReturnTypeDeclaration: enabled: false
Methods\NoParameterWithContainerTypeDeclarationRule
此规则在方法有已知依赖注入容器或服务定位器的类型声明时报告错误。
默认值
默认情况下,此规则禁止使用表示实现
应被注入到方法中的类型声明。
禁用此规则
您可以将 enabled
参数设置为 false
来禁用此规则。
parameters: ergebnis: noParameterWithContainerTypeDeclaration: enabled: false
配置容器接口
您可以将interfacesImplementedByContainers
参数设置为额外容器和服务定位器的接口名列表。
parameters: ergebnis: noParameterWithContainerTypeDeclaration: interfacesImplementedByContainers: - Fancy\DependencyInjection\ContainerInterface - Other\ServiceLocatorInterface
配置允许使用容器类型声明的参数的方法
您可以将methodsAllowedToUseContainerTypeDeclarations
参数设置为允许使用具有容器类型声明的参数的方法名列表。
parameters: ergebnis: noParameterWithContainerTypeDeclaration: methodsAllowedToUseContainerTypeDeclarations: - loadExtension
Methods\NoParameterWithNullableTypeDeclarationRule
此规则在接口中声明
- 一个类中
- 的构造函数
- 的方法
有一个具有可空类型声明的参数。
禁用此规则
您可以将 enabled
参数设置为 false
来禁用此规则。
parameters: ergebnis: noParameterWithNullableTypeDeclaration: enabled: false
Methods\NoParameterWithNullDefaultValueRule
此规则在接口中声明
- 一个类中
- 的构造函数
- 的方法
有一个默认值为null
的参数。
禁用此规则
您可以将 enabled
参数设置为 false
来禁用此规则。
parameters: ergebnis: noParameterWithNullDefaultValue: enabled: false
Methods\PrivateInFinalClassRule
此规则在final
类中的方法为protected
但可以是private
时报告错误。
禁用此规则
您可以将 enabled
参数设置为 false
来禁用此规则。
parameters: ergebnis: privateInFinalClass: enabled: false
语句
Statements\NoSwitchRule
此规则在语句switch()
被使用时报告错误。
禁用此规则
您可以将 enabled
参数设置为 false
来禁用此规则。
parameters: ergebnis: noSwitch: enabled: false
变更日志
此项目的维护者将此项目的重要更改记录在 变更日志 中。
贡献
此项目的维护者建议遵循 贡献指南。
行为准则
此项目的维护者要求贡献者遵循 行为准则。
一般支持策略
此项目的维护者提供有限的支持。
您可以通过 赞助 @localheinz 或 请求与该项目相关的服务发票 来支持此项目的维护。
PHP 版本支持策略
此项目支持具有 活跃和安全支持 的 PHP 版本。
此项目的维护者在其初始发布后添加对 PHP 版本的支持,并在其达到安全支持结束时停止支持该 PHP 版本。
安全策略
此项目有一个 安全策略。
许可证
此项目使用 MIT 许可证。
致谢
方法 FinalRule::isWhitelistedClass()
受到 FinalClassFixer
和 FinalInternalClassFixer
的工作的启发,由 Dariusz Rumiński、Filippo Tessarotto 和 Spacepossum 贡献给 friendsofphp/php-cs-fixer
(最初许可下为 MIT),并受到启发。
社交
关注 Twitter 上的 @localheinz 和 @ergebnis。