dpanta94/phpstan-containers
最新稳定版本:0.1.0
Composer 安装命令:
composer require --dev dpanta94/phpstan-containers
包简介
PHPStan extensions for Containers
关键字:
README 文档
README
PHPStan extensions for dependency injection containers. Provides dynamic return type resolution so PHPStan understands that $container->get(Foo::class) returns Foo.
Supported Containers
- StellarWP Container Contract (
StellarWP\ContainerContract\ContainerInterface) - PSR-11 Container (
Psr\Container\ContainerInterface)
Requirements
- PHP 7.4 or higher
- PHPStan 2.0 or higher
Installation
composer require --dev dpanta94/phpstan-containers
If you use phpstan/extension-installer, you're all set!
Manual Installation
If you don't use the extension installer, add the extension to your phpstan.neon:
includes: - vendor/dpanta94/phpstan-containers/extension.neon
Usage
Once installed, PHPStan will automatically understand container return types:
use Psr\Container\ContainerInterface; class MyService { public function __construct(private ContainerInterface $container) {} public function doSomething(): void { // PHPStan knows $logger is an instance of Logger $logger = $this->container->get(Logger::class); $logger->info('Hello world'); // PHPStan knows $mailer is an instance of MailerInterface $mailer = $this->container->get(MailerInterface::class); $mailer->send($message); } }
The extension resolves types when:
- The argument to
get()is a class-string constant (e.g.,Foo::class) - The class or interface exists in the codebase
When using string service IDs (e.g., $container->get('mailer')), the extension falls back to the default mixed return type.
License
MIT
Credits
This package is inspired by Phil Nelson's phpstan-container-extension.
统计信息
- 总下载量: 569
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-12-11