上下文绑定

有时需要根据上下文更改如何解析接口。 你可能希望将log事件从一个地方记录到本地syslog,从其他地方记录到外部服务。 所以,让我们告诉容器如何区分 - 查看例11-11。

Example 11-11. Contextual binding
// In a service provider
public function register()
{
    $this->app->when(FileWrangler::class)
        ->needs(Interfaces\Logger::class)
        ->give(Loggers\Syslog::class);
    $this->app->when(Jobs\SendWelcomeEmail::class)
        ->needs(Interfaces\Logger::class)
        ->give(Loggers\PaperTrail::class);
}

Last updated