Provides a phpstan/phpstan extension for phpspec/prophecy

Installs: 517 185

Dependents: 109

Suggesters: 0

Security: 0

Stars: 50

Watchers: 4

Forks: 21

Open Issues: 1


0.6.0 2019-12-27 23:57 UTC

This package is auto-updated.

Last update: 2020-01-14 16:39:06 UTC


Continuous Integration Latest Stable Version Total Downloads Violinist Enabled



PHPStan is a static code analysis tool for php, you can find out more about it here.

This repository provides an extension so that it also understands code that uses the Prophecy library to fake objects in unit tests. So far it covers two use cases:

Prophesizing and Revealing

$prophecy = $prophet->prophesize(SomeModel::class);
$instance = $prophecy->reveal();

It will help PHPStan to understand that the $instance variable is indeed an instance of SomeModel.

Method Predictions

$prophecy = $prophet->prophesize(Calculator::class);

$instance = $prophecy->reveal();
$instance->doubleTheNumber(2); // Will return 5

It will also help PHPStan to understand that $prophecy accepts method calls to all methods that are implemented by its prophesized class.

HINT: Currently there are no checks in place to validate the arguments of methods that are being called on prophecies.

Installation and usage

Install via composer:

composer require --dev jangregor/phpstan-prophecy

Automatic Extension Setup

If you have the PHPStan Extension Installer installed as well, there is no next step required. Otherwise, please proceed with the manual setup step.

Manual Setup

And then make sure to add the extension to your phpstan.neon file:

	- vendor/jangregor/phpstan-prophecy/src/extension.neon

And you should be good to go. Happy testing!


If you need a suitable dev environment you can always use docker. Simply build the respective container and tag it via:

docker build -t phpstan-prophecy:7.1 docker/container/php

You can then use this tagged container image to run php during development:

docker run -it --rm --name phpstan-prophecy-dev -v "$PWD":/var/www/html -w /var/www/html phpstan-prohphecy:7.1 bash


Please have a look at CHANGELOG.md.


Please have a look at CONTRIBUTING.md.