php-static-analysis / phpstan-extension
用于读取静态分析属性的 PHPStan 扩展
0.3.1
2024-09-12 17:36 UTC
Requires
- php: >=8.0
- php-static-analysis/attributes: ^0.3.1 || dev-main
- php-static-analysis/node-visitor: ^0.3.1 || dev-main
- phpstan/phpstan: ^1.8
- webmozart/assert: ^1.11
Requires (Dev)
- php-static-analysis/psalm-plugin: dev-main
- phpstan/phpstan-deprecation-rules: ^1.1
- phpunit/phpunit: ^9.0
- symplify/easy-coding-standard: ^12.1
- vimeo/psalm: ^5
README
自 PHP 8.0 发布以来,越来越多的库、框架和工具已经更新为使用属性而不是 PHPDoc 中的注释。
然而,像 PHPStan 这样的静态分析工具并没有过渡到属性,它们仍然依赖于 PHPDoc 中的注释来实现很多功能。
这是一个 PHPStan 扩展,允许 PHPStan 理解一组新的属性,这些属性替代了 PHPDoc 注释。这些属性在 这个仓库 中定义。
示例
为了展示使用这些属性后的代码外观,我们可以看看以下示例。这是使用当前注释的类的样子
<?php class ArrayAdder { /** @var array<string> */ private array $result; /** * @param array<string> $array1 * @param array<string> $array2 * @return array<string> */ public function addArrays(array $array1, array $array2): array { $this->result = $array1 + $array2; return $this->result; } }
而这是使用新属性时的样子
<?php use PhpStaticAnalysis\Attributes\Type; use PhpStaticAnalysis\Attributes\Param; use PhpStaticAnalysis\Attributes\Returns; class ArrayAdder { #[Type('array<string>')] private array $result; #[Param(array1: 'array<string>')] #[Param(array2: 'array<string>')] #[Returns('array<string>')] public function addArrays(array $array1, array $array2): array { $this->array = $array1 + $array2; return $this->array; } }
安装
首先,为了使属性可用于您的代码库,使用
composer require php-static-analysis/attributes
要使用此扩展,在 Composer 中要求它
composer require --dev php-static-analysis/phpstan-extension
如果您还安装了 phpstan/extension-installer,那么您就准备好了!
手动安装
如果您不想使用 phpstan/extension-installer
,请将 extension.neon
包含在项目 PHPStan 配置中
includes:
- vendor/php-static-analysis/phpstan-extension/extension.neon
使用扩展
此扩展通过与 PHPStan 用于解析代码的解析器交互,将新属性替换为 PHPStan 可以理解的 PHPDoc 注释。属性提供的功能与相应的 PHPDoc 注释提供的功能完全相同。
以下是可用的属性及其对应的 PHPDoc 注释
赞助此项目
如果您想支持此项目的发展,请考虑 赞助我