phpstan/phpstan-nette
Nette Framework class reflection extension for PHPStan
0.11
2019-01-16 07:56 UTC
Requires
- php: ~7.1
- phpstan/phpstan: ^0.11
- nikic/php-parser: ^4.0
Requires (Dev)
- consistence/coding-standard: ^3.0.1
- dealerdirect/phpcodesniffer-composer-installer: ^0.4.4
- jakub-onderka/php-parallel-lint: ^1.0
- phing/phing: ^2.13.0
- phpstan/phpstan-php-parser: ^0.11
- phpstan/phpstan-phpunit: ^0.11
- phpstan/phpstan-strict-rules: ^0.11
- phpunit/phpunit: ^7.0
- satooshi/php-coveralls: ^1.0
- slevomat/coding-standard: ^4.5.2
- nette/application: ^2.3.0 || ^3.0.0
- nette/component-model: ^2.3.0 || ^3.0.0
- nette/di: ^2.3.0 || ^3.0.0
- nette/forms: ^2.3.0 || ^3.0.0
- nette/utils: ^2.3.0 || ^3.0.0
- nette/http: ^2.3.0 || ^3.0.0
Conflicts
- nette/application: <2.3.0
- nette/component-model: <2.3.0
- nette/di: <2.3.0
- nette/forms: <2.3.0
- nette/utils: <2.3.0
- nette/http: <2.3.0
README
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.Nette\ComponentModel\Component::lookup
return type based on$throw
parameter.Nette\Application\UI\Component::getPresenter
return type based on$throw
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 these framework-specific rules (can be enabled separately):
- Do not extend Nette\Object, use Nette\SmartObject trait instead
- Rethrow exceptions that are always meant to be rethrown (like
AbortException
)
Usage
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