php-static-analysis / psalm-plugin
Psalm 插件,用于读取静态分析属性
0.3.1
2024-09-12 17:37 UTC
Requires
- php: >=8.0
- ext-simplexml: *
- php-static-analysis/attributes: ^0.3.1 || dev-main
- php-static-analysis/node-visitor: ^0.3.1 || dev-main
- vimeo/psalm: ^5
- webmozart/assert: ^1.11
Requires (Dev)
- php-static-analysis/phpstan-extension: dev-main
- phpstan/extension-installer: ^1.3
- phpstan/phpstan: ^1.10
- phpunit/phpunit: ^9.0
- symplify/easy-coding-standard: ^12.1
README
自 PHP 8.0 发布以来,越来越多的库、框架和工具已更新为使用属性而不是 PHPDocs 中的注释。
然而,像 Psalm 这样的静态分析工具尚未过渡到属性,它们仍然依赖于 PHPDocs 中的注释来实现许多功能。
这是一个 Psalm 插件,允许 Psalm 理解一组新的属性,这些属性取代了 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/psalm-plugin
然后运行此命令以启用插件
vendor/bin/psalm-plugin enable php-static-analysis/psalm-plugin
这将把此插件配置添加到 psalm.xml
配置文件中
<plugins> <pluginClass class="PhpStaticAnalysis\PsalmPlugin\Plugin" /> </plugins>
如果您愿意,您也可以手动将此配置添加到您的 psalm.xml
文件中,而不是运行 psalm-plugin enable
命令。
使用扩展
此扩展通过与 Psalm 解析代码时使用的解析器交互来工作,用 Psalm 可以理解的 PHPDoc 注释替换新的属性。属性提供的功能与相应的 PHPDoc 注释提供的功能完全相同。
以下是可以用的属性及其对应的 PHPDoc 注释
赞助此项目
如果您想支持此项目的开发,请考虑 赞助我