Symfony extension for PHPStan
Clone or download
Latest commit 6f200b0 Jan 16, 2019

PHPStan Symfony Framework extensions and rules

Build Status Latest Stable Version License

This extension provides following features:

  • Provides correct return type for ContainerInterface::get() and ::has() methods.
  • Provides correct return type for Controller::get() and ::has() methods.
  • Provides correct return type for Request::getContent() method based on the $asResource parameter.
  • Notifies you when you try to get an unregistered service from the container.
  • Notifies you when you try to get a private service from the container.


To use this extension, require it in Composer:

composer require --dev phpstan/phpstan-symfony

And include extension.neon in your project's PHPStan config:

	- vendor/phpstan/phpstan-symfony/extension.neon
		container_xml_path: %rootDir%/../../../var/cache/dev/srcDevDebugProjectContainer.xml

You have to provide a path to srcDevDebugProjectContainer.xml or similar xml file describing your container.

Constant hassers

Sometimes, when you are dealing with optional dependencies, the ::has() methods can cause problems. For example, the following construct would complain that the condition is always either on or off, depending on whether you have the dependency for service installed:

if ($this->has('service')) {
    // ...

In that case, you can disable the ::has() method return type resolving like this:

		constant_hassers: false

Be aware that it may hide genuine errors in your application.