Namespace PHPStan\Analyser

Classes
ArgumentsNormalizer
Error
ImpurePoint
InternalError
MutatingScope
NameScope
NodeScopeResolver
OutOfClassScope
ScopeContext
ScopeFactory
SpecifiedTypes
StatementContext

Object of this class is one of the parameters of NodeScopeResolver::processStmtNodes(). It determines whether loops will be analysed once or multiple times until the types "stabilize". When in doubt, use StatementContext::createTopLevel().

StatementExitPoint
StatementResult
ThrowPoint
TypeSpecifier
TypeSpecifierContext
Interfaces
IgnoreErrorExtension

This is the extension interface to implement if you want to ignore errors based on the node and scope. To register it in the configuration file use the phpstan.ignoreErrorExtension service tag: ``` services: - class: App\PHPStan\MyExtension tags: - phpstan.ignoreErrorExtension

NodeCallbackInvoker

The interface NodeCallbackInvoker can be typehinted in 2nd parameter of Rule::processNode(): php 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: php 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.

Scope
TypeSpecifierAwareExtension
Exceptions
UndefinedVariableException
Namespaces
PHPStan\Analyser\ResultCache