那什么情况下要把这个服务放到服务容器里面去?
想象这样一个应用场景:某些你需要的服务你希望在框架启动的时候也一起跟着启用,这个时候就是应该把服务放到服务容器中。
放到服务容器里面的作用是什么?
跟着框架启动,保证服务可用。
究竟服务是放到服务容器里面还是服务提供者里面?
服务是放到服务容器里面的,而定义服务怎么放到服务容器里面,就是服务提供者的职责,通常是下面这样的代码:
public function register()
{
$this->app->singleton('App\Translation\Translation','App\Translation\YoudaoTranslation');
// 这是一个 TranslationServiceProvider,负载将 YoudaoTranslation 这个服务放到服务容器当中
}
服务提供者和服务容器他们各自的职责是什么?
服务提供者就是声明服务该怎样放到容器中:是 singleton 还是 bind 等?见上一问。服务容器包含框架的所有服务,在框架启动的时候,容器内的服务就启动