Я использую класс 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
...
Конечно, изменять блок документации напрямую из основного класса — плохая идея. Тем не менее, мой вопрос остается прежним. Или, может быть, есть способ для PHPStan соблюдать мой собственный блок документации из моего класса CustomRule
?