久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      laravel門面是什么

      在laravel中,門面是為應(yīng)用服務(wù)容器中的綁定類提供的一個“靜態(tài)”接口。維護(hù)時能夠提供更加易于測試、更加靈活、簡明優(yōu)雅的語法,所有的門面都定義在“IlluminateSupportFacades”命名空間下。

      laravel門面是什么

      本文操作環(huán)境:Windows10系統(tǒng)、Laravel6版、Dell G3電腦。

      laravel門面是什么

      Facades 為應(yīng)用服務(wù)容器中的綁定類提供了一個“靜態(tài)”接口。

      Laravel 內(nèi)置了很多 Facades ,可以訪問絕大部分 Laravel 的功能。

      Laravel 的門面作為服務(wù)容器中底層類的“靜態(tài)代理”,相比于傳統(tǒng)靜態(tài)方法,在維護(hù)時能夠提供更加易于測試、更加靈活、簡明優(yōu)雅的語法。

      Laravel 的所有門面都定義在 IlluminateSupportFacades 命名空間下。

      我們可以輕松訪問到門面:

      use IlluminateSupportFacadesCache; Route::get('/cache', function () {     return Cache::get('key'); });

      在整個 Laravel 文檔中,很多例子使用了門面來演示框架的各種功能特性。

      何時使用 Facades

      門面有諸多優(yōu)點,其提供了簡單、易記的語法,讓我們無需記住長長的類名即可使用 Laravel 提供的功能特性,此外,由于他們對 PHP 動態(tài)方法的獨到用法,使得它們很容易測試。

      在使用 Facades 時,有些地方還需要特別注意。

      使用 Facades 最主要的風(fēng)險就是會引起類作用范圍的膨脹。

      因為 Facades 使用起來非常簡單而且不需要注入,就會使得我們在不經(jīng)意間在單個類中使用許多 Facades,從而導(dǎo)致類變的越來越大。

      而使用依賴注入的時候,使用的類越多,構(gòu)造方法就會越長,在視覺上就會引起注意,提醒你這個類有點龐大了。因此在使用 Facades 的時候,要特別注意控制好類的大小,讓類的作用范圍保持短小。

      在開發(fā)與 Laravel 進(jìn)行交互的第三方擴(kuò)展包時,建議最好選擇注入 Laravel 契約 ,而不是使用 Facades 的方式來使用類。因為擴(kuò)展包是在 Laravel 本身之外構(gòu)建,所以你無法使用 Laravel Facades 測試輔助函數(shù)。

      Facades Vs. 依賴注入

      依賴注入的主要優(yōu)點之一是切換注入類的實現(xiàn)的能力。這在測試的時候很有用,因為你可以注入一個 mock 或者 stub ,并斷言在 stub 上調(diào)用的各種方法。

      通常,真正的靜態(tài)方法是不可能被 mock 或者 stub。但是,因為 Facades 使用動態(tài)方法來代理從服務(wù)容器解析的對象的方法調(diào)用,我們可以像測試注入的類實例一樣來測試 Facades。例如,像下面的路由:

      use IlluminateSupportFacadesCache;   Route::get('/cache', function () {     return Cache::get('key'); })

      我們可以這樣編寫測試來驗證 Cache::get 方法以我們期望的方式被調(diào)用:

      use IlluminateSupportFacadesCache; /**  * 一個基礎(chǔ)功能的測試用例。  *  * @return void  */ public function testBasicExample() { Cache::shouldReceive('get') ->with('key') ->andReturn('value'); $this->visit('/cache') ->see('value'); }

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號