opsbears/piccolo-dic-auryn

此包已被弃用且不再维护。未建议替换包。

1.0-alpha1 2016-07-22 07:13 UTC

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']);