php-static-analysis/phpstan-extension

用于读取静态分析属性的 PHPStan 扩展

资助包维护!
carlos-granados

安装次数: 3,478

依赖者: 4

建议者: 1

安全: 0

星标: 7

关注者: 0

分支: 0

开放问题: 0

类型:phpstan-extension

0.3.1 2024-09-12 17:36 UTC

This package is auto-updated.

Last update: 2024-09-12 21:07:33 UTC


README

Continuous Integration Latest Stable Version License Total Downloads

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

赞助此项目

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