php-static-analysis/psalm-plugin

Psalm 插件,用于读取静态分析属性

资助包维护!
carlos-granados

安装次数: 1,433

依赖: 4

建议者: 1

安全: 0

星标: 1

关注者: 0

分支: 0

开放问题: 0

类型:psalm-plugin

0.3.1 2024-09-12 17:37 UTC

This package is auto-updated.

Last update: 2024-09-12 21:08:51 UTC


README

Continuous Integration Latest Stable Version License Total Downloads

自 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 注释

赞助此项目

如果您想支持此项目的开发,请考虑 赞助我