localheinz/phpstan-rules

此软件包已被废弃,不再维护。作者建议使用 ergebnis/phpstan-rules 软件包。

为 phpstan/phpstan 提供规则。

安装数: 142 496

依赖项: 14

建议者: 0

安全: 0

星标: 341

关注者: 6

分支: 17

开放问题: 5

类型:phpstan-extension

2.2.0 2024-02-07 17:49 UTC

README

Integrate Merge Release Renew

Code Coverage Type Coverage

Latest Stable Version Total Downloads Monthly Downloads

此项目提供了一个 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 提供以下规则

类\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

此规则在抽象类中的具体publicprotected 方法不是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() 受到 FinalClassFixerFinalInternalClassFixer 的工作的启发,由 Dariusz RumińskiFilippo TessarottoSpacepossum 贡献给 friendsofphp/php-cs-fixer(最初许可下为 MIT),并受到启发。

社交

关注 Twitter 上的 @localheinz@ergebnis