如何在Laravel 5.1中将实例设为单例?

时间:2015-07-20 14:01:55

标签: php laravel laravel-5

在我的服务提供商中,我手动构建服务。我想将它作为单例绑定到容器中。但是,当我这样做时:

$this->app->singleton('React\EventLoop\LoopInterface', $loop);

singleton()方法获取$loop类,并尝试创建自身失败的对象。

1 个答案:

答案 0 :(得分:1)

为了使其起作用,您需要将闭包作为第二个参数传递给 singleton 方法。如果在调用register方法之前$ loop对象已经存在,那么只需执行:

$this->app->singleton('React\EventLoop\LoopInterface', function() {
  $loop = ...; //instantiate $loop
  return $loop;
});

或者,如果可以在这里实例化$循环,那就更好了:

<option>