laravel学习(五)-外观

Facades

Posted by zwtisme on June 6, 2018

介绍laravel框架中外观的主要使用方法。

文档

英文文档

中文文档

创建外观

1.新建外观

外观的新建需要继承于Facades类,并重写getFacadeAccessor用于提供容器解析时所需要的服务别名。

namespace Illuminate\Support\Facades;
class Cache extends Facade
{
    /**
     * 获取服务的注册名
     */
    protected static function getFacadeAccessor()
    {
        return 'cache';
    }
}

2.引入外观

当我们有了facade,需要怎么配置到程序里呢,从而可以让框架对其进行操作。

应用中的facade都是在配置文件config/app.php的aliases中。

'aliases' => [
    //自定义的facade
    'Cache' => Illuminate\Support\Facades\Cache::class,
],

3.加载流程图

image

使用外观

1.使用方法

在使用外观时,通过类似于类中静态方法的调用方式,即可使用facade中的功能。

$user = Cache::get('user:'.$id);

2.使用流程图

image

外观的优缺点

1.优点

可以很方便,随心所欲的使用facade类提供的功能。

2.缺点

可能会在单个类中使用很多的facade,导致类的膨胀;而使用依赖注入会随着使用类的增多,构造函数会变长,在感官上引起我们的注意,可能类需要进行功能的重构了。因此在使用facade时,我们需要主观控制类的大小,当类变的比较大时,就需要进行重构了。