Dependency injection 我应该在Yii2中的何处设置DI容器?

Dependency injection 我应该在Yii2中的何处设置DI容器?,dependency-injection,yii2,Dependency Injection,Yii2,我有一个接口。还有一节课。该类实现了接口并扩展了BaseObject。它类似于业务逻辑服务。我将通过构造函数把它注入控制器。我的目标是从接口使用依赖项 我正在看,我不明白,我应该在哪里写这段代码。它是主配置的一部分吗?或者是某种新的配置?是一个分离文件吗?如果是yse,Yi2将如何理解它是DI配置?您可以在应用程序配置中设置DI容器。例如,在web.php配置中: $config=[ // ... “容器”=>[ “定义”=>[ \my\namespace\MyInterface::class

我有一个接口。还有一节课。该类实现了接口并扩展了
BaseObject
。它类似于业务逻辑服务。我将通过构造函数把它注入控制器。我的目标是从接口使用依赖项


我正在看,我不明白,我应该在哪里写这段代码。它是主配置的一部分吗?或者是某种新的配置?是一个分离文件吗?如果是yse,Yi2将如何理解它是DI配置?

您可以在应用程序配置中设置DI容器。例如,在web.php配置中:

$config=[
// ... 
“容器”=>[
“定义”=>[
\my\namespace\MyInterface::class=>\my\namespace\MyClass::class,
//……其他定义
],
],
//…其他配置
];
另一个设置DI的好地方可能是组件的引导方法。例如,在模块类中

类MyModule扩展\yii\base\Module实现\yii\base\BootstrapInterface
{
公共功能引导($app)
{
Yii::$container->set(
\my\namespace\MyInterface::class,
\my\namespace\MyClass::class
);
}
}
在这种情况下,您必须将模块添加到应用程序的
引导
属性中