2.5. 定位符号

未匹配的标注

定位符号

PHPStan 需要定位代码库里的符号(类,函数,常量)。默认情况下,在以下两处可以找到:

这涵盖了大部分情况。

然而,在一些高级场景需要额外的配置。

Composer 依赖项以外的第三方代码。

如果你的项目使用了一些不属于 Composer 依赖项的代码,而你不想要分析它们。你可以利用 scanFilesscanDirectories 配置项:

parameters:
    scanFiles:
      - Foo.class.php
    scanDirectories:
      - classes

scanFilesscanDirectories 键的路径会基于配置文件所在的目录解析。

全局常量

PHPStan 1.7.0 开始,分析带有全局常量的代码无需任何特殊要求。

老版 PHPStan 的说明:

代码中使用的全局常量需要在引导文件中定义。

创建一个类似这样的文件:

<?php

define('MY_CONSTANT', 1);

并把它添加到你的 配置文件:

parameters:
    bootstrapFiles:
        - constants.php

请注意,引导文件在 PHP 实际运行时执行。

类的别名

类似于上面的全局常量。代码中的类别名也需要在引导文件中定义。

创建一个类似这样的文件:

<?php

class_alias(\Foo::class, 'Bar');

并把它添加到你的 配置文件:

parameters:
    bootstrapFiles:
        - classAliases.php

请注意,引导文件在 PHP 实际运行时执行。

自定义的自动加载器

如果您使用的不是 Composer 中的自动加载器,PHPStan 也可以利用它来发现具有自动加载类的文件。

您可以通过两种方式注册自定义自动加载器:

1) 通过 --autoload-file|-a 参数传递注册自动加载器的 PHP 文件。
2) 通过使用 bootstrapFiles 选项:

parameters:
    bootstrapFiles:
        - my_autoloader.php

请注意,带有自动加载器的文件在 PHP 实际运行时执行。

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
讨论数量: 0
发起讨论 只看当前版本


暂无话题~