jangregor/phpstan-prophecy
最新稳定版本:2.2.0
Composer 安装命令:
composer require jangregor/phpstan-prophecy
包简介
Provides a phpstan/phpstan extension for phpspec/prophecy
README 文档
README
Provides a phpspec/prophecy extension for phpstan/phpstan.
Installation
Run
composer require --dev jangregor/phpstan-prophecy
Configuration
Automatic
When using phpstan/extension-installer, no further setup is required.
Manual
When not using phpstan/extension-installer, extension.neon needs to be included in phpstan.neon:
includes:
+ - vendor/jangregor/phpstan-prophecy/extension.neon
Usage
prophesize() and reveal()
<?php use PHPUnit\Framework; final class ExampleTest extends Framework\TestCase { public function testSomething(): void { $prophecy = $this->prophesize(SomeModel::class); $testDouble = $prophecy->reveal(); // ... } }
???? With this extension enabled, phpstan/phpstan will understand that $testDouble is an instance of SomeModel.
prophesize(), willExtend(), and reveal()
<?php use PHPUnit\Framework; final class ExampleTest extends Framework\TestCase { public function testSomething(): void { $prophecy = $this->prophesize()->willExtend(SomeModel::class); $testDouble = $prophecy->reveal(); // ... } }
???? With this extension enabled, phpstan/phpstan will understand that $testDouble is an instance of SomeModel.
prophesize(), willImplement(), and reveal()
<?php use PHPUnit\Framework; final class ExampleTest extends Framework\TestCase { public function testSomething(): void { $prophecy = $this->prophesize(SomeModel::class)->willImplement(SomeInterface::class); $testDouble = $prophecy->reveal(); // ... } }
???? With this extension enabled, phpstan/phpstan will understand that $testDouble is an instance of SomeModel that also implements SomeInterface.
Method Predictions
<?php use PHPUnit\Framework; final class ExampleTest extends Framework\TestCase { public function testSomething(): void { $prophecy = $this->prophesize(SomeModel::class); $prophecy ->doubleTheNumber(Argument::is(2)) ->willReturn(4); $testDouble = $prophecy->reveal(); // ... } }
???? With this extension enabled, phpstan/phpstan will understand that $prophecy accepts method calls to all methods that are implemented by its prophesized class (or additionally implemented interfaces, when using willImplement()).
Method Arguments
❗ Currently here are no checks in place to validate the arguments of methods that are invoked on prophecies.
Development
A development environment is provided via .docker/Dockerfile.
Run
$ docker build --tag phpstan-prophecy .docker/
to build and tag the Docker image.
Run
$ docker run -it --rm --volume "$PWD":/var/www/html --workdir /var/www/html phpstan-prophecy bash
to open a shell in the Docker container.
Changelog
Please have a look at CHANGELOG.md.
Contributing
Please have a look at CONTRIBUTING.md.
License
This package is licensed using the MIT License.
Please have a look at LICENSE.md.
统计信息
- 总下载量: 17.12M
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 112
- 点击次数: 1
- 依赖项目数: 342
- 推荐数: 1
其他信息
- 授权协议: MIT
- 更新时间: 2026-01-04