在laravel中,門面是為應用程式服務容器中的綁定類別提供的一個「靜態」介面。維護時能夠提供更易於測試、更靈活、簡潔優雅的語法,所有的門面都定義在「Illuminate\Support\Facades」命名空間下。
本文操作環境:Windows10系統、Laravel6版、Dell G3電腦。
laravel門面是什麼
Facades 為應用程式服務容器中的綁定類別提供了一個「靜態」介面。
Laravel 內建了許多 Facades ,可以存取絕大部分 Laravel 的功能。
Laravel 的門面作為服務容器中底層類別的“靜態代理”,相比於傳統靜態方法,在維護時能夠提供更加易於測試、更加靈活、簡明優雅的語法。
Laravel 的所有門面都定義在 Illuminate\Support\Facades 命名空間下。
我們可以輕鬆存取到門面:
use Illuminate\Support\Facades\Cache; Route::get('/cache', function () { return Cache::get('key'); });
在整個 Laravel 文件中,許多例子都使用了門面來示範框架的各種功能特性。
何時使用 Facades
門面有許多優點,其提供了簡單、易記的語法,讓我們無需記住長長的類別名稱即可使用Laravel 提供的功能特性,此外,由於他們對 PHP 動態方法的獨到用法,使得它們很容易測試。
使用 Facades 時,有些地方還要特別注意。
使用 Facades 最主要的風險就是會造成類作用範圍的膨脹。
因為 Facades 使用起來非常簡單且不需要注入,就會使得我們在不經意間在單一類別中使用許多 Facades,從而導致類別變的越來越大。
而使用依賴注入的時候,使用的類別越多,建構方法就會越長,在視覺上就會引起注意,提醒你這個類別有點龐大了。因此在使用 Facades 的時候,要特別注意控制好類別的大小,讓類別的作用範圍保持短小。
在開發與 Laravel 互動的第三方擴充包時,建議最好選擇注入 Laravel 契約 ,而不是使用 Facades 的方式來使用類別。因為擴充包是在 Laravel 本身之外構建,所以你無法使用 Laravel Facades 測試輔助函數。
Facades Vs. 依賴注入
依賴注入的主要優點之一是切換注入類別的實現的能力。這在測試的時候很有用,因為你可以注入一個 mock 或 stub ,並斷言在 stub 上所呼叫的各種方法。
通常,真正的靜態方法是不可能被 mock 或 stub。但是,因為 Facades 使用動態方法來代理從服務容器解析的物件的方法調用,我們可以像測試注入的類別實例一樣來測試 Facades。例如,像下面的路由:
use Illuminate\Support\Facades\Cache; Route::get('/cache', function () { return Cache::get('key'); })
我們可以這樣編寫測試來驗證 Cache::get 方法以我們期望的方式被調用:
use Illuminate\Support\Facades\Cache; /** * 一个基础功能的测试用例。 * * @return void */ public function testBasicExample() { Cache::shouldReceive('get') ->with('key') ->andReturn('value'); $this->visit('/cache') ->see('value'); }
【相關推薦:laravel視頻教程】
以上是laravel門面是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

Tocombatisolationandlonelinessinremotework,companiesshouldimplementregular,meaningfulinteractions,provideequalgrowthopportunities,andusetechnologyeffectively.1)Fostergenuineconnectionsthroughvirtualcoffeebreaksandpersonalsharing.2)Ensureremoteworkers

laravelispularfullull-stackDevelopmentBecapeitOffersAsAseAseAseAseBlendOfbackendEdpoperandPowerandForterFlexibility.1)ITSbackEndCapaPabilities,sightifyDatabaseInteractions.2)thebladeTemplatingEngingEngineAllolowsLows

選擇視頻會議平台的關鍵因素包括用戶界面、安全性和功能。 1)用戶界面應直觀,如Zoom。 2)安全性需重視,MicrosoftTeams提供端到端加密。 3)功能需匹配需求,GoogleMeet適合簡短會議,CiscoWebex提供高級協作工具。

最新版本的Laravel10與MySQL5.7及以上、PostgreSQL9.6及以上、SQLite3.8.8及以上、SQLServer2017及以上兼容。這些版本選擇是因為它們支持Laravel的ORM功能,如MySQL5.7的JSON數據類型,提升了查詢和存儲效率。

Laravelisanexcellentchoiceforfull-stackdevelopmentduetoitsrobustfeaturesandeaseofuse.1)ItsimplifiescomplextaskswithitsmodernPHPsyntaxandtoolslikeBladeforfront-endandEloquentORMforback-end.2)Laravel'secosystem,includingLaravelMixandArtisan,enhancespro

Laravel10,releasedonFebruary7,2023,isthelatestversion.Itfeatures:1)Improvederrorhandlingwithanewreportmethodintheexceptionhandler,2)EnhancedsupportforPHP8.1featureslikeenums,and3)AnewLaravel\Promptspackageforinteractivecommand-lineprompts.

thelatestlaravelververversionenhancesdevelopmentwith:1)簡化的inimpliticmodelbinding,2)增強EnhancedeloquentcapabibilitionswithNewqueryMethods和3)改善了supportorfortormodernphpfortornphpforternphpfeatureserslikenamedargenamedArgonedArgonsemandArgoctess,makecodingMoreftermeforefterMealiteFficeAndEnjoyaigaigaigaigaigaiganigaborabilyaboipaigyAndenjoyaigobyabory。

你可以在laravel.com/docs找到最新Laravel版本的發布說明。 1)發布說明提供了新功能、錯誤修復和改進的詳細信息。 2)它們包含示例和解釋,幫助理解新功能的應用。 3)注意新功能的潛在復雜性和向後兼容性問題。 4)定期審查發布說明可以保持更新並激發創新。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

Atom編輯器mac版下載
最受歡迎的的開源編輯器

WebStorm Mac版
好用的JavaScript開發工具

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能