實際用法

2018-02-24 15:51 更新

在下面的例子,對 Laravel 緩存系統(tǒng)進(jìn)行調(diào)用。簡單看過去這代碼,有人可能會以為靜態(tài)方法 get 是對 Cache 類調(diào)用。

$value = Cache::get('key');

然而,如果我們?nèi)タ?Illuminate\Support\Facades\Cache 類,你將會看到它沒有靜態(tài)方法 get:

class Cache extends Facade {

    /**
     * 取得組件的注冊名稱
     *
     * @return string
     */
    protected static function getFacadeAccessor() { return 'cache'; }

}

Cache 類繼承基本的 Facade 類并定義一個 getFacadeAccessor() 方法。記住,這個方法的工作是返回服務(wù)容器綁定的名稱。

當(dāng)用戶在 Cache 的 facade 上參考任何的靜態(tài)方法,Laravel 會從服務(wù)容器解析被綁定的 cache ,并對該對象執(zhí)行被請求的方法 (在這個例子中, get)。

所以我們的 Cache::get 調(diào)用可以被重寫成像這樣:

$value = $app->make('cache')->get('key');

導(dǎo)入 Facades

記住,如果你在控制器有使用命名空間的情況下使用 facade,你會需要導(dǎo)入 facade 類進(jìn)入命名空間。所有的 facades 存在于全局命名空間:

<?php namespace App\Http\Controllers;

use Cache;

class PhotosController extends Controller {

    /**
     * 取得所有的應(yīng)用程序相片。
     *
     * @return Response
     */
    public function index()
    {
        $photos = Cache::get('photos');

        //
    }

}
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號