为什么默认情况下不共享Laravel实例?

时间:2018-08-07 21:18:41

标签: laravel dependency-injection inversion-of-control

我惊讶地发现默认情况下不共享Laravel实例。

我发现声明提供程序的“最简单”方法如下:

<?php

namespace App\Providers;


use App\SomeService;
use Illuminate\Support\ServiceProvider;

class SomeServiceServiceProvider extends ServiceProvider {

    protected $defer = true;

    public function register() {
        $this->app->singleton(SomeService::class);
    }

    public function provides() {
        $provides = parent::provides();
        $provides[] = SomeService::class;
        return $provides;
    }

}

TMHO依赖项注入容器中的“标准”服务是共享实例。我很好奇他们为什么选择这种方法?

另外,如果您知道一种声明共享实例的简单方法,那么这是一个奖励。

0 个答案:

没有答案