我正在使用Respect/Validation类,并且我有自定义规则CustomRule()
可以正常工作:
use Respect\Validation\Validator as v;
// ...
'email' => v::CustomRule()->email()->setName('email');
但这会导致 PHPStan 抛出错误:
Call to an undefined static method Respect\Validation\Validator::CustomRule().
但是,如果我在内置规则(例如,email()
)之后移动它,PHPStan 工作正常,没有错误:
'email' => v::email()->CustomRule()->setName('email');
需要明确的是,这两个代码都有效,但 PHPStan 认为第一个代码是无效的。
任何解决方法以便 PHPStan 会接受它,即使CustomRule()
是先设置的?
更新:
我发现如果我编辑Respect\Validation\Validator
类的文档块并将我的自定义规则附加到其内置规则列表中,它就可以工作!
/**
* ...
* @method static Validator CustomRule()
*/
class Validator extends AllOf
...
当然,直接从主类修改 doc 块是个坏主意。也就是说,我的问题仍然是一样的。或者,也许 PHPStan 有办法从我的CustomRule
课堂上尊重我自己的文档块?