This extension provides following features:
Nette\ComponentModel\Container::getComponent()
knows type of the component because it reads the return type oncreateComponent*
(this works best in presenters and controls)Nette\DI\Container::getByType
andcreateInstance
return type based on first parameter (Foo::class
).Nette\Forms\Container::getValues
return type based on$asArray
parameter.- Dynamic methods of Nette\Utils\Html
- Magic Nette\Object and Nette\SmartObject properties
- Event listeners through the
on*
properties - Defines early terminating method calls for Presenter methods to prevent
Undefined variable
errors
It also contains this framework-specific rule (can be enabled separately):
- Do not extend Nette\Object, use Nette\SmartObject trait instead
To use this extension, require it in Composer:
composer require --dev phpstan/phpstan-nette
And include extension.neon in your project's PHPStan config:
includes:
- vendor/phpstan/phpstan-nette/extension.neon
To perform framework-specific checks, include also this file:
- vendor/phpstan/phpstan-nette/rules.neon