g4 / di
基于 Pimple 的 g4 依赖注入容器
1.0.2
2022-03-30 13:19 UTC
Requires
- php: >=5.3.3
- pimple/pimple: 3.*
This package is auto-updated.
Last update: 2024-08-29 03:49:06 UTC
README
DI - 依赖注入容器 - 单例 Pimple 包装 https://github.com/silexphp/Pimple
- 通过方法而非数组属性访问
- 无需每次需要时都记住 DI 数组键(或回到 DI 类去查找)
- 类型提示
安装
使用 Composer 和 Packagist https://packagist.org.cn/packages/g4/di
composer require g4/di
用法
服务通过返回对象实例的匿名函数定义。在您的应用程序中,将所有服务定义在一个 DI 容器类中
namespace MyNamespace; use G4\DI\Container; class DI extends Container { /** * @return \MyNamespace\MyConfig */ public static function configInstance() { return self::registerShare(function (DI $c) { return new \MyNamespace\MyConfig(); }); } /** * @return \MyNamespace\MyClass */ public static function myClassInstance() { return self::registerFactory(function (DI $c) { return new \MyNamespace\MyClass($c::configInstance()); }); } }
方法
- registerFactory($callable) - 注册一个每次都返回新实例的服务
- registerShare($callable) - 注册一个每次都返回相同实例的服务
使用定义的服务
use MyNamespace\DI; $myClass = DI::myClassInstance(); // the above call is equivalent to: // $myConfig = new \MyNamespace\MyConfig(); // $myClass = new \MyNamespace\MyClass($myConfig);
开发
安装依赖项
$ make install
运行测试
$ make test
许可证
(MIT 许可证) 详细信息请参阅 LICENSE 文件...