Slamdunk / phpstan-laminas-framework

Laminas Framework 3 extensions for PHPStan
MIT License
16 stars 10 forks source link
laminas php phpstan static-analysis

PHPStan extension for Laminas Framework

Latest Stable Version Downloads Integrate Code Coverage

This extension provides following features:

  1. Provide correct return type for $container->get() calls on containers of type \Laminas\ServiceManager\ServiceLocatorInterface, \Interop\Container\ContainerInterface or \Psr\Container\ContainerInterface
  2. Handle controller plugins that are called using magic __call() in subclasses of \Laminas\Mvc\Controller\AbstractController
  3. Provide correct return type for plugin method of AbstractController, FilterChain, PhpRenderer and ValidatorChain
  4. getApplication(), getRenderer(), getRequest() and getResponse() methods on Controllers, MvcEvents, View, ViewEvent and Application returns the real instance instead of type-hinted interfaces
  5. getView() method on \Laminas\View\Helper\AbstractHelper returns the real Renderer instance instead of type-hinted interface
  6. \Laminas\Stdlib\ArrayObject is configured as a Universal object crate
  7. Handle \Laminas\Stdlib\AbstractOptions magic properties

Installation

To use this extension, require it in Composer:

composer require --dev slam/phpstan-laminas-framework

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/slam/phpstan-laminas-framework/extension.neon ```

Configuration

This library already recognize built-in services and plugins.

You can opt in for more advanced analysis by providing the service manager from your own application:

parameters:
    laminasframework:
       serviceManagerLoader: tests/service-manager.php

For example, tests/service-manager.php would look something like this:

$app = \Laminas\Mvc\Application::init($config);
return $app->getServiceManager();