我正在阅读 Laravel 文档,试图更深入地了解该框架,但我在外观方面遇到了一些麻烦。我想我明白它们是什么,它们主要是为了方便访问 Laravels 核心而使用。
我对这个主题感到困惑:
- 立面是如何运作的? (具体与 getFacadeAccessor() 方法相关。这很神奇吗?)
Facades 是另一种使用类而无需手动创建对象的方法。它们只是注册课程的快捷方式Laravel 容器 https://laravel.com/docs/5.6/container.
例如,这个:
DB::
与使用容器完全相同:
app('db')->
So, DB::
门面只是一个捷径app('db')->
.
是的,外墙使用了魔法方法__callStatic() https://github.com/illuminate/support/blob/master/Facades/Facade.php#L213它解析类的实例并执行给定的方法:
public static function __callStatic($method, $args)
{
$instance = static::getFacadeRoot();
if (! $instance) {
throw new RuntimeException('A facade root has not been set.');
}
return $instance->$method(...$args);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)