Laravel Facades:底层类是否实例化?

时间:2014-08-15 15:24:08

标签: php laravel

编辑:重新提出问题

如果在外观类上调用方法,是否会实例化该类的实际对象以调用该方法,或者在引导应用程序期间实例化该类的对象,并且每次都返回相同的对象(像单身人士)?

我理解,当

App::make('class name')
完成时,将正常实例化容器绑定类,但是因为你不必手动使用App :: make我不明白对象在哪里或者“生命”这个类的实例?

BTW我知道laravel的外墙与设计模式不同。

1 个答案:

答案 0 :(得分:1)

我认为Dayle Rees解释得最好:

  

每个Facade都链接到容器中组件的实例。 Facade的静态方法是快捷方式,在调用时,它们调用它们在容器中表示的对象的适当公共方法

所以,当像

这样的方法时

Cache::get('key');

被调用,它实际上已在IoC容器中解析为

$app->make('cache')->get('key');

现在Cache的实例在$app或主容器。

编辑:所有类都已注册,不一定在Laravel引导期间实例化。