我怎样才能让 phpstan 找到我的自定义扩展 class?
How can I have phpstan find my custom extension class?
为了实现对某些神奇 _get()
函数的检查,我正在尝试实现“class 反射扩展”。 The manual 提到如何自己编写扩展文件,并通过将 service
部分添加到 neon 文件来安装它们。
我写了一个扩展,然后像这样添加它:
services:
-
class: TestClass
tags:
- phpstan.broker.methodsClassReflectionExtension
这会导致以下错误:
Service '0226': Class TestClass not found.
我尝试过的事情:
- 使用独立的 phar
- 使用 phpstan
的作曲家安装
- 使用特定命名空间 (PHPStan) 作为扩展(在文件和 neon 中)
- 使用“随机”命名空间(在文件和 neon 中)
- 将文件添加到我知道正在扫描以进行分析的目录
- 将带有扩展名的目录添加到“scanDirectories”参数
- 正在将文件添加到“scanFiles”参数
- 将带有扩展名的目录添加到“路径”参数
- 添加(已弃用的)自动加载指令并在其中添加文件。
其中一些 'adding' 尝试实际上会在找不到文件时发出警告:例如,如果我在其中一个中故意输入错误,比如说自动加载,它会警告我缺少文件。但前提是我没有定义 service
。
如果我定义了服务并在那里故意打字错误,它 returns 在 class-not-found 之上(而不是打字错误),所以我觉得它在任何之前检查扩展的参数?
似乎需要将我的文件添加到不同的自动加载机制。问题是,哪个以及如何?
我正在使用
- php斯坦 0.12.40
- php 7.2.33
扩展 class 需要在运行时加载。您可以通过两种方式实现:
使 class 可用于 Composer 自动加载器。通常配置 composer.json.
的 autoload-dev
部分就足够了
创建一个名为 phpstan-autoload.php
的文件,其中 require_once
扩展名为 class 的文件。并在 运行 PHPStan.
时将 phpstan-autoload.php
文件的路径作为命令行上的 --autoload-file|-a
选项传递
为了实现对某些神奇 _get()
函数的检查,我正在尝试实现“class 反射扩展”。 The manual 提到如何自己编写扩展文件,并通过将 service
部分添加到 neon 文件来安装它们。
我写了一个扩展,然后像这样添加它:
services:
-
class: TestClass
tags:
- phpstan.broker.methodsClassReflectionExtension
这会导致以下错误:
Service '0226': Class TestClass not found.
我尝试过的事情:
- 使用独立的 phar
- 使用 phpstan 的作曲家安装
- 使用特定命名空间 (PHPStan) 作为扩展(在文件和 neon 中)
- 使用“随机”命名空间(在文件和 neon 中)
- 将文件添加到我知道正在扫描以进行分析的目录
- 将带有扩展名的目录添加到“scanDirectories”参数
- 正在将文件添加到“scanFiles”参数
- 将带有扩展名的目录添加到“路径”参数
- 添加(已弃用的)自动加载指令并在其中添加文件。
其中一些 'adding' 尝试实际上会在找不到文件时发出警告:例如,如果我在其中一个中故意输入错误,比如说自动加载,它会警告我缺少文件。但前提是我没有定义 service
。
如果我定义了服务并在那里故意打字错误,它 returns 在 class-not-found 之上(而不是打字错误),所以我觉得它在任何之前检查扩展的参数?
似乎需要将我的文件添加到不同的自动加载机制。问题是,哪个以及如何?
我正在使用
- php斯坦 0.12.40
- php 7.2.33
扩展 class 需要在运行时加载。您可以通过两种方式实现:
使 class 可用于 Composer 自动加载器。通常配置 composer.json.
的autoload-dev
部分就足够了创建一个名为
时将phpstan-autoload.php
的文件,其中require_once
扩展名为 class 的文件。并在 运行 PHPStan.phpstan-autoload.php
文件的路径作为命令行上的--autoload-file|-a
选项传递