Wirebox
轻量级 PHP 8.4 依赖注入容器,支持自动装配、属性配置与编译容器。
什么是 Wirebox?
Wirebox 是一个面向 PHP 8.4+ 的现代化依赖注入容器,无需配置。它利用 PHP 最新特性——原生属性、惰性对象和反射——提供强大而简洁的依赖注入体验。
核心特性
- 零配置 — 指定一个目录,所有具体类自动注册
- PSR-11 兼容 — 标准
ContainerInterface实现 - PHP 8.4 属性 — 声明式服务配置:
#[Singleton]、#[Inject]、#[Lazy]等 - 自动装配 — 通过类型提示自动解析构造函数依赖
- 编译容器 — 生成零反射的 PHP 类,用于生产环境
- 惰性代理 — 通过 PHP 8.4 原生惰性对象实现延迟实例化
- 内置 dotenv — 无外部依赖的环境变量支持
- 自动配置 — 按接口或属性自动标记服务(Symfony 风格)
快速示例
use AsceticSoft\Wirebox\ContainerBuilder;
$builder = new ContainerBuilder(projectDir: __DIR__);
$builder->scan(__DIR__ . '/src');
$container = $builder->build();
$service = $container->get(App\UserService::class);
三行代码即可创建一个功能完整的自动装配 DI 容器。无需 XML、YAML 或样板代码。
为什么选择 Wirebox?
| 特性 | Wirebox | 其他容器 |
|---|---|---|
| PHP 8.4 原生惰性对象 | 是 | 代理生成 |
| 零配置目录扫描 | 是 | 手动注册 |
内置 .env 支持 |
是 | 外部包 |
| 编译容器 | 是 | 部分支持 |
| 自动配置 | 是 | 部分支持 |
| 最少依赖 | 仅 psr/container |
通常较多 |
| PHPStan Level 9 | 是 | 不一定 |
环境要求
- PHP >= 8.4
- psr/container ^2.0
安装
composer require ascetic-soft/wirebox