Interface PHPStan\Analyser\NodeCallbackInvoker

The interface NodeCallbackInvoker can be typehinted in 2nd parameter of Rule::processNode():

public function processNode(Node $node, Scope&NodeCallbackInvoker $scope): array

It can be used to invoke rules for virtual made-up nodes.

For example: You're writing a rule for a method with declaration like:

public static create(string $class, mixed ...$args)

And you'd like to check Factory::create(Foo::class, 1, 2, 3) as if it were new Foo(1, 2, 3).

You can call $scope->invokeNodeCallback(new New_(new Name($className), $args))

And PHPStan will call all the registered rules for New_, checking as if the instantiation is actually in the code.

Methods