krubio / perfect-container
一个轻量级、基于反射的依赖注入容器,旨在简化使用,使PHP应用程序中的类依赖关系能够自动解决和管理。
v1.2.1
2024-06-03 04:00 UTC
Requires
- php: >=8.2.0
Requires (Dev)
- codeception/codeception: ^5.0
- codeception/module-asserts: *
- phpstan/phpstan: ^1.10
README
PerfectContainer
描述
PerfectContainer是一个轻量级、易于使用的依赖注入容器,专为PHP应用程序设计。它简化了类依赖关系的管理,促进了代码的整洁和解耦。PerfectContainer允许开发者将接口绑定到具体实现,从而更容易地在不修改依赖类的情况下替换依赖关系。
特性
- 简单API:易于使用的API用于绑定和解决依赖关系。
- 单例绑定:将类绑定为单例,以在整个应用程序中重用相同的实例。
- 自动解决:通过类型提示的构造函数注入自动解决依赖关系。
- PSR-11兼容:遵循PSR-11容器接口标准。
2.0.0版本即将到来的更改
在2.0.0版本中,我们将引入方法重命名以提高一致性
- 方法重命名:将
bind
方法重命名为set
。此更改旨在提供更清晰的语义并符合依赖注入容器中的标准做法。
弃用通知
从1.1.0版本开始,弃用bind
方法,我们鼓励您开始使用set
以与即将到来的2.0.0版本的变化保持一致。
- 弃用:将弃用
bind
方法,并在未来版本(2.0.0)中删除。请更新您的使用方法以使用set
以确保与未来版本兼容。
我们鼓励您相应地更新您的使用方法,以确保与PerfectContainer的最新版本兼容。
安装
使用Composer安装PerfectContainer库。
composer require krubio/perfect-container
使用
以下是PerfectContainer的基本使用示例
require 'vendor/autoload.php'; use PerfectApp\Container\Container; $container = new Container(); // Binding and resolving dependencies $container->set('SomeInterface', 'SomeImplementation'); $instance = $container->get('SomeInterface');
贡献
欢迎贡献、问题反馈和功能请求!
许可证
本项目采用MIT许可证。