php-static-analysis / attributes
用于静态分析工具的属性,代替PHPDocs
0.3.1
2024-09-13 07:46 UTC
Requires
- php: >=8.0
Requires (Dev)
- php-static-analysis/node-visitor: dev-main
- php-static-analysis/phpstan-extension: dev-main
- php-static-analysis/psalm-plugin: dev-main
- phpstan/extension-installer: ^1.3
- phpstan/phpstan: ^1.8
- phpunit/phpunit: ^9.0
- symplify/easy-coding-standard: ^12.1
- vimeo/psalm: ^5
Suggests
- php-static-analysis/phpstan-extension: PHPStan extension to read static analysis attributes
- php-static-analysis/psalm-plugin: Psalm plugin to read static analysis attributes
- php-static-analysis/rector-rule: RectorPHP rule to convert PHPDoc annotations to static analysis attributes
README
自PHP 8.0发布以来,越来越多的库、框架和工具已更新为使用属性而非PHPDocs中的注释。
然而,像PHPStan或Psalm这样的静态分析工具,以及像PhpStorm或VS Code这样的IDE,还没有过渡到属性,它们仍然依赖于PHPDocs中的注释来完成许多功能。
这个库旨在提供一套PHP属性,这些属性可以替代这些工具最常用的注释,并旨在为相关仓库提供扩展或插件,以便在这些工具中使用这些属性。
特别是,这些仓库包括
示例
为了展示使用这些属性后代码的样式,我们可以看以下示例。这是当前注释的类样式
<?php class ArrayAdder { /** @var array<string> */ private array $result; /** * @param array<string> $array1 the first array * @param array<string> $array2 the second array * @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>')] // the first array #[Param(array2: 'array<string>')] // the second array #[Returns('array<string>')] public function addArrays(array $array1, array $array2): array { $this->array = $array1 + $array2; return $this->array; } }
安装
要使用这些属性,请在Composer中引入此库
composer require php-static-analysis/attributes
然后安装您使用的工具所需的任何扩展或插件。
已实现的属性列表
这些是可用的属性及其对应的PHPDoc注释
PhpStorm支持
需要创建一个完全支持这些属性的插件。在此准备好之前,您可以通过安装PHPStan、我们的PHPStan扩展并在PhpStorm中启用PHPStan支持(如此处所述)来获得部分支持。您将能够看到代码中与这些属性相关的错误和消息。
或者安装Psalm、我们的Psalm扩展并在PhpStorm中启用Psalm支持(如此处所述)
VS Code支持
需要创建一个完全支持这些属性的扩展。在此准备好之前,您可以通过安装PHPStan、我们的PHPStan扩展和VS Code扩展(例如这个)来获得部分支持。当您启用扩展时,您将能够看到代码中与这些属性相关的错误和消息。
或者安装Psalm、我们的Psalm扩展和VS Code扩展(例如这个)
赞助此项目
如果您想支持此项目的开发,请考虑赞助我