W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
在下面的例子,對(duì) Laravel 緩存系統(tǒng)進(jìn)行調(diào)用。簡單看過去這代碼,有人可能會(huì)以為靜態(tài)方法 get 是對(duì) Cache 類調(diào)用。
$value = Cache::get('key');
然而,如果我們?nèi)タ?Illuminate\Support\Facades\Cache 類,你將會(huì)看到它沒有靜態(tài)方法 get:
class Cache extends Facade {
/**
* 取得組件的注冊(cè)名稱
*
* @return string
*/
protected static function getFacadeAccessor() { return 'cache'; }
}
Cache 類繼承基本的 Facade 類并定義一個(gè) getFacadeAccessor() 方法。記住,這個(gè)方法的工作是返回服務(wù)容器綁定的名稱。
當(dāng)用戶在 Cache 的 facade 上參考任何的靜態(tài)方法,Laravel 會(huì)從服務(wù)容器解析被綁定的 cache ,并對(duì)該對(duì)象執(zhí)行被請(qǐng)求的方法 (在這個(gè)例子中, get)。
所以我們的 Cache::get 調(diào)用可以被重寫成像這樣:
$value = $app->make('cache')->get('key');
記住,如果你在控制器有使用命名空間的情況下使用 facade,你會(huì)需要導(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號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: