1
在我的服務提供商中,我手動構建服務。我想將它作爲單例綁定到容器中。然而,當我這樣做:如何在Laravel 5.1中創建一個實例?
$this->app->singleton('React\EventLoop\LoopInterface', $loop);
的singleton()
方法獲取類的$loop
並試圖創建對象本身,它失敗。
在我的服務提供商中,我手動構建服務。我想將它作爲單例綁定到容器中。然而,當我這樣做:如何在Laravel 5.1中創建一個實例?
$this->app->singleton('React\EventLoop\LoopInterface', $loop);
的singleton()
方法獲取類的$loop
並試圖創建對象本身,它失敗。
爲了使其正常工作,您需要將一個閉包作爲第二個參數傳遞給單身人士方法。如果$循環對象已存在被調用註冊方法之前,只是做:
$loop = ...; // $loop is instantiated somewhere before this code
$this->app->singleton('React\EventLoop\LoopInterface', function() use ($loop) {
return $loop;
});
,或者它是否可以在這裏實例$循環,它甚至更好的事:
$this->app->singleton('React\EventLoop\LoopInterface', function() {
$loop = ...; //instantiate $loop
return $loop;
});