首頁  >  文章  >  php教程  >  laravel框架之門面(facades)

laravel框架之門面(facades)

高洛峰
高洛峰原創
2016-11-30 15:50:091424瀏覽

Facades 為應用程式的服務容器中可用的類別提供了一個「靜態」介面。

 

Laravel 本身附帶許多的 facades,甚至你可能在不知情的狀況下已經在使用他們!

 

xpower的靜態介面(門面,facades)

 

前提條件1:我們有一個已經綁定到服務容器的類別(xpower)

前提條件2:我們已經在服務提供者中註冊這個類別(xpower)

前提條件2:我們已經在服務提供者中註冊這個類別(xpower)

前提條件2:我們已經在服務提供者中註冊這個類別(xpower)

前提條件2:我們已經在服務提供者中註冊這個類別(xpower)

前提條件2:我們已經在服務提供者中註冊這個類別(xpower)

前提。類別(服務容器中regisrer下的singleton方法)

 

5.接下來創建xpower的facade,都是繼承facade基底類別。必須實作getFacadeAccessor方法。回傳了一個字串,這個字串其實就是服務提供者註冊綁定單例(singleton方法)的一個名稱。這個名稱可以隨便寫,我們這裡是xpower

<?php 

namespace App\Facades; 

use Illuminate\Support\Facades\Facade; 

class XP extends Facade { 
  protected static function getFacadeAccessor() { 
    return &#39;xpower&#39;; 
  } 
}

6.再然後需要到設定檔config/app.php中註冊門面類別名稱:

&#39;aliases&#39; => [ ...//其他门面类别名映射 &#39;XP&#39; => App\Facades\XP::class, ],

我們此時可以直接使用XP::activate來啟動xpower超能力

use AppFacadesXP 的引入。不然找不到。

 

分析:🎜🎜1.XP::activate先去容器中找這個XP的實例(已經在容器中註冊),回傳xpower字串🎜🎜2.xpower這個字串也已經綁定註冊到容器中,然後回傳Xpower服務實例🎜🎜3. ::activate這個其實會呼叫基底類別facade中的__callstatic方法,然後轉換為->show()這個方式的呼叫。 🎜🎜🎜🎜
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:git 常用指令下一篇:git 常用指令