3
面對Laravel的IoC和Singleton問題。Laravel 5.1 Singleton始終是新實例
我有以下的單例類:
class ConcreteClass
{
function __construct() {Log::info('I iz created...');}
}
和下面的服務提供商:
class ConcreteClassServiceProvider extends ServiceProvider
{
public function register()
{
$this->app->singleton('ConcreteClass', function() {
return new ConcreteClass();
});
}
}
但是每App::make('ConcreteClass')
,public function __construct(ConcreteClass $concrete)
在一個請求將導致日誌有I iz created...
這這使得人們非常懷疑Laravel中的單身事物的作用。我很可能是錯誤的配置。請幫助我。謝謝。
感謝您的回覆,我嘗試了一下您建議的命名空間,並且它的工作部分是成功的。顯然使用App :: make('SingletonNameAsPerServiceProvider');作品。部分工作,因爲當它使用App :: make進行訪問時,或者在刀片模板中使用@inject時它可以工作。但一些如何通過另一個類請求時,它似乎不會作爲單例啓動。但它在大多數情況下都有效。將此標記爲答案:) –