Skip to content
Nette Framework class reflection extension for PHPStan & framework-specific rules
PHP
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src Fix compatibility with PHPStan 0.12 Jul 18, 2019
tests Fix compatibility with PHPStan 0.12 Jul 18, 2019
.coveralls.yml
.editorconfig Add .editorconfig Sep 24, 2017
.gitattributes Build and tests Jul 17, 2016
.gitignore First working version Jan 4, 2016
.travis.yml Check composer requirements on Travis May 22, 2018
README.md Installation instructions May 21, 2019
build.xml Updated coding standard Apr 3, 2018
composer.json Open 0.12-dev Jul 18, 2019
extension.neon
phpcs.xml
phpstan.neon Test with bleeding edge May 12, 2019
rules.neon Added schema May 17, 2019

README.md

Nette Framework class reflection extension for PHPStan

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)

Installation

To use this extension, require it in Composer:

composer require --dev phpstan/phpstan-nette

If you also install phpstan/extension-installer then you're all set!

Manual installation

If you don't want to use phpstan/extension-installer, 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
You can’t perform that action at this time.