2.5. 定位符号
定位符号
PHPStan 需要定位代码库里的符号(类,函数,常量)。默认情况下,在以下两处可以找到:
这涵盖了大部分情况。
然而,在一些高级场景需要额外的配置。
Composer 依赖项以外的第三方代码。
如果你的项目使用了一些不属于 Composer 依赖项的代码,而你不想要分析它们。你可以利用 scanFiles
和 scanDirectories
配置项:
parameters:
scanFiles:
- Foo.class.php
scanDirectories:
- classes
在 scanFiles
和 scanDirectories
键的路径会基于配置文件所在的目录解析。
全局常量
从 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 实际运行时执行。