实现一些魔法检查 _get()
函数,我正在尝试实现“类反射扩展”。 The manual提到了如何自己编写扩展文件,并通过添加 service
来安装它们。 NEON 文件的一部分。
我写了一个扩展,并像这样添加它:
services:
-
class: TestClass
tags:
- phpstan.broker.methodsClassReflectionExtension
这会导致以下错误:Service '0226': Class TestClass not found.
我尝试过的事情:
如果找不到文件,其中的一些“添加”尝试实际上会发出警告:例如,如果我故意在其中一个输入错误,比如说自动加载一个,它会警告我丢失的文件。但前提是我没有
service
定义。如果我定义了服务并在那里故意输入错字,它会返回高于 class-not-found(而不是错字),所以我觉得它在检查任何参数之前的扩展名?
似乎需要将我的文件添加到不同的自动加载机制。问题是,哪个以及如何?
我正在使用
最佳答案
扩展类需要在运行时加载。您可以通过两种方式实现这一目标:
autoload-dev
就足够了您的 composer.json 的部分。phpstan-autoload.php
的文件您在其中 require_once
带有扩展类的文件。并将路径传递给 phpstan-autoload.php
文件为 --autoload-file|-a
运行 PHPStan 时命令行上的选项。关于php - 我怎样才能让 phpstan 找到我的自定义扩展类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63635482/