slam/phpstan-zend-framework

This package is abandoned and no longer maintained. The author suggests using the slam/phpstan-laminas-framework package instead.

Zend Framework 3 MVC controller plugin extension for PHPStan.

Installs: 9 278

Dependents: 0

Suggesters: 0

Security: 0

Stars: 5

Watchers: 2

Forks: 7

Open Issues: 2

Type:phpstan-extension

v0.11.0 2019-06-07 10:04 UTC

This package is auto-updated.

Last update: 2020-01-02 14:08:34 UTC


README

Repository abandoned 2019-12-31

This repository has moved to Slamdunk/phpstan-laminas-framework.

PHPStan extension for Zend Framework

Build Status Scrutinizer Code Quality Packagist Total Downloads

This extension provides following features:

  1. Provide correct return types for \Zend\ServiceManager\ServiceLocatorInterface::get() using real service instances
  2. Handle controller plugins that are called using magic __call() in subclasses of \Zend\Mvc\Controller\AbstractController
  3. getApplication(), getRenderer(), getRequest() and getResponse() methods on Controllers, MvcEvents, View, ViewEvent and Application returns the real instance instead of type-hinted interfaces
  4. getView() method on \Zend\View\Helper\AbstractHelper returns the real Renderer instance instead of type-hinted interface
  5. \Zend\Stdlib\ArrayObject is configured as a Universal object crate
  6. Handle \Zend\Stdlib\AbstractOptions magic properties

Installation

To use this extension, require it in Composer:

composer require --dev slam/phpstan-zend-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-zend-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:
    zendframework:
       serviceManagerLoader: tests/service-manager.php

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

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