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时它可以工作。但一些如何通过另一个类请求时,它似乎不会作为单例启动。但它在大多数情况下都有效。将此标记为答案:) –