W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
在下面的例子,對 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');
記住,如果你在控制器有使用命名空間的情況下使用 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');
//
}
}
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: