面对Laravel的IoC和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中非常有效。我很可能错误的配置。请帮帮我。谢谢。
答案 0 :(得分:0)
我不确定你如何使用你的实例,但它可能是命名空间的东西。当我尝试通过指定完整路径来实例化我的单例时,例如:
@inject('foo', 'App\.....\FooSingleton');
它不起作用。
我必须只指定没有路径的名称,即:
@inject('foo', 'FooSingleton');
为什么呢?我不知道。这对我来说仍然是一个谜。