Skip to content
Nette Framework class reflection extension for PHPStan & framework-specific rules
PHP
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src Fix Jun 3, 2020
stubs Return ArrayHash stub Mar 17, 2020
tests Removed all the unnecessary packages in require-dev Mar 17, 2020
.coveralls.yml
.editorconfig Add .editorconfig Sep 24, 2017
.gitattributes
.gitignore
.travis.yml Enhancement: Add PHP 7.3 to Travis CI build matrix Dec 8, 2019
README.md Update README.md Apr 16, 2020
build.xml Enhancement: Run ergebnis/composer-normalize in check target Dec 20, 2019
composer.json
extension.neon Return ArrayHash stub Mar 17, 2020
phpcs.xml
phpstan.neon Fixed compatibility with PHPStan 0.12 Nov 25, 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.