【发布时间】:2014-06-26 13:45:20
【问题描述】:
在大多数情况下,我了解外观背后的想法以及实例化对象的细节是如何隐藏在静态调用之后的。
因此,如果我们在这里看一下这个直截了当的示例:Example
我们看到一些类似这样的外观代码,此时它只是设置了某种别名。在这一点上,外观似乎仍然对Superuser 类一无所知。
class SuperuserFacade extends Facade
{
protected static function getFacadeAccessor() {
return 'MyAlias';
}
}
这里的逻辑似乎是由服务提供商粘合的:
class SuperuserServiceProvider extends ServiceProvider
{
public function register() {
App::bind('MyAlias', function(){
return new Superuser;
});
}
}
但它只是将类绑定到外观别名MyAlias。为什么要打扰那个外观类和两个单独的文件,我们不能在服务提供者中直接完成所有这些逻辑吗?或者在外观提供者中让它只返回Superuser 类?
看起来我们的外观并没有真正做任何事情,然后另一个文件告诉该外观要做什么。为什么将这些问题分开?
【问题讨论】:
标签: php laravel laravel-4 facade