作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我发现理解 Facades 有点困难。特别是如何从外观名称找到底层类名称/位置。我已经阅读了文档但仍然不清楚。例如,当使用 Auth::login() 时,我发现 Auth 外观中没有 login()
方法。
class Auth extends Facade
{
/**
* Get the registered name of the component.
*
* @return string
*/
protected static function getFacadeAccessor()
{
return 'auth';
}
/**
* Register the typical authentication routes for an application.
*
* @return void
*/
public static function routes()
{
static::$app->make('router')->auth();
}
}
Auth 外观getFacadeAccessor()
方法返回一个字符串auth。但是我应该查看哪个 auth 类?如何解析实际的类?
谢谢
最佳答案
您可以使用getFacadeRoot()
例如
$object = Auth::getFacadeRoot() // Illuminate\Auth\AuthManager instance
或者获取完全限定的类名
$class = get_class(Auth::getFacadeRoot()) // 'Illuminate\Auth\AuthManager'
您还可以使用容器通过其访问器来解析类。这就是 Laravel 在解析 Facade 时在幕后所做的事情。
$object = resolve('auth'); // Illuminate\Auth\AuthManager instance
关于laravel - 如何从 Laravel 中的 Facade 名称获取底层类名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46173194/
我是一名优秀的程序员,十分优秀!