phpstan/phpstan-nette

Nette Framework class reflection extension for PHPStan

0.10.1 2018-07-10 21:28 UTC

README

Build Status Latest Stable Version License

This extension provides following features:

  • Nette\ComponentModel\Container::getComponent() knows type of the component because it reads the return type on createComponent* (this works best in presenters and controls)
  • Nette\DI\Container::getByType and createInstance 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