Lavarel中Facades的理解和使用

接着上一篇阐述Contracts的博文,这一篇来写一写我理解的Facades。


Facades 为应用程序的 服务容器 中可用的类提供了一个「静态」接口。说白了,就是让服务容器中的类用起来更方便些。

我理解的Facades在Lavarel结构中的位置,在上一篇本博文中已经上图说明,大家可点击参阅。下面写一些怎么使用Facades。


第一步,写一个类继承Facade:

<?php
namespace App\Facades;

use Illuminate\Support\Facades\Facade;

class Hello extends Facade
{
    protected static function getFacadeAccessor()
    {
        return 'Hello';
    }
}

这里的return的”Hello”是上一篇博文中,Contract接口的别名。通过这一步,这个Facade就与Contract联系起来了。

第二步,在Config\app.php中给它一个别名,在’aliases’ => []中加入这一行代码即可:

'FacadeHello'=>App\Facades\Hello::class,

第三步,可以使用了,在控制器中:

<?php

namespace App\Http\Controllers;

use FacadeHello;

class DiaryController extends Controller
{
    /**
     * Display a list of all of the user's diaries.
     *
     * @return Response
     */
    public function index(){
        return view('diaries.index',[
        'hello'=>FacadeHello::hello(),
        ]);
    }
}

说明:

  1. 这里use的 FacadeHello 就是给这个Facade起的别名(当然不用别名也可以)。
  2. 通过FacadeHello就可以直接用Contract接口实现类中的方法了。

通过对Contracts和Facades的学习,我认为后者使用起来应该更方便一些。看中文社区说,使用Contracts可以进一步降低耦合度,这一点还不是想得很明白,请前辈指点。

另外,尊重版权,转载请注明出处,谢谢!

                                                        by:Vin
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值