2015-07-20 41 views
1

在我的服務提供商中,我手動構建服務。我想將它作爲單例綁定到容器中。然而,當我這樣做:如何在Laravel 5.1中創建一個實例?

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

singleton()方法獲取類的$loop並試圖創建對象本身,它失敗。

回答

1

爲了使其正常工作,您需要將一個閉包作爲第二個參數傳遞給單身人士方法。如果$循環對象已存在被調用註冊方法之前,只是做:

$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; 
}); 
相關問題