Skip to content

Nette Framework class reflection extension for PHPStan & framework-specific rules

License

Notifications You must be signed in to change notification settings

spaze/phpstan-nette

This branch is 5 commits behind phpstan/phpstan-nette:2.0.x.

Folders and files

NameName
Last commit message
Last commit date
Sep 4, 2024
Nov 15, 2024
Aug 25, 2024
Nov 15, 2024
May 15, 2021
Sep 24, 2017
May 25, 2023
May 25, 2023
Nov 29, 2020
Sep 4, 2024
Aug 9, 2024
Oct 4, 2024
Oct 9, 2024
Sep 19, 2023
Jan 30, 2022
Sep 24, 2024

Repository files navigation

Nette Framework extension for PHPStan

Build 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
  • Understand the exact array shape coming from Nette\Utils\Strings::match() and Nette\Utils\Strings::matchAll() based on pattern

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

About

Nette Framework class reflection extension for PHPStan & framework-specific rules

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • PHP 99.1%
  • Makefile 0.9%