opsbears / piccolo-dic-auryn
此包已被弃用且不再维护。未建议替换包。
1.0-alpha1
2016-07-22 07:13 UTC
Requires
- php: ^7.0
- opsbears/piccolo: ^1.0
- rdlowrey/auryn: ^1.4
Requires (Dev)
Provides
- opsbears/piccolo-dic: 1.0.0
This package is not auto-updated.
Last update: 2020-08-19 06:36:58 UTC
README
此模块使用 Auryn 依赖注入容器 提供依赖注入服务。
安装
此模块可以通过 composer 安装
composer require opsbears/piccolo-dic-auryn
配置
共享/重用类
要共享一个类或实例,可以使用 share()
函数
$dic = new AurynDependencyInjectionContainer();
$dic->share(new MyService());
$dic->share(MyOtherService::class);
创建抽象类/接口别名
$dic = new AurynDependencyInjectionContainer();
$dic->alias(MyInterface::class, MyImplementation::class);
设置/覆盖类参数
默认情况下,Auryn 将通过类型提示检测依赖项。有时这不可能/不占优势,因此您可以使用 setClassParameters()
方法来覆盖它们。未提供的参数将尝试通过反射查找。
$dic = new AurynDependencyInjectionContainer();
$dic->setClassParameters(MyClass::class, ['someParameter' => 'someValue']);
注意! 这与 Auryn 配置不同!在 Auryn 中,通常在字面值前加冒号(:
)。在 Piccolo 中不需要!
使用
创建类
要创建一个类或接口(使用别名)的实例,请使用 make()
方法
$dic = new AurynDependencyInjectionContainer();
//...
$dic->make(MyClass::class)->doSomething();
执行方法
有时您可能需要在自动检测所需参数的同时执行一个方法。这可以通过 execute()
方法完成。
$dic = new AurynDependencyInjectionContainer();
$myClass = new MyClass();
//...
$dic->execute([$myClass, 'myMethod'], ['additionalArgument1' => 'value']);