今天小編給大家分享一下laravel中契約和門面有哪些區(qū)別的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
創(chuàng)新互聯-專業(yè)網站定制、快速模板網站建設、高性價比桐廬網站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式桐廬網站制作公司更省心,省錢,快速模板網站建設找我們,業(yè)務覆蓋桐廬地區(qū)。費用合理售后完善,十余年實體公司更值得信賴。
區(qū)別:1、契約是指框架提供的一系列定義核心服務的接口,而門面是提供了一個靜態(tài)類調用容器中綁定對象的作用;2、契約可以看做框架功能的方法定義接口,存放著大多數方法,而門面就是提供方法的,提供靜態(tài)調用,不需要注入接口。
本教程操作環(huán)境:windows10系統、Laravel6版,DELL G3電腦。
介紹
Laravel 的Contracts是一組接口,它們由框架提供并定義了核心服務。例如,illuste\Contracts\Queue\Queue 契約定義了排隊作業(yè)所需的方法,而 illuste\Contracts\Mail\Mailer 契約定義了發(fā)送郵件所需的方法。而Contracts也叫做契約
在我們前面的學習中,我們學到了很多輔助函數和Facades門面提供的簡單方法,它不需要類型的提示就可以實現方法. 在大多數情況下,每個門面都有對應的契約方法,和facades不同,契約允許你為類定義顯示依賴關系.
何時使用契約
正如在其他地方所討論的,使用契約或 Facades 的許多決定將取決于個人喜好和開發(fā)團隊的喜好。契約和 Facades 均可用于創(chuàng)建功能強大且經過良好測試的 Laravel 應用程序。 只要聚焦在類的職責應該單一上,您會發(fā)現使用契約還是 Facades 之間的實際差異其實很小。
如何使用契約
那么,如何實現契約呢?它其實很簡單。
Laravel 中的許多類都是通過 服務容器 解析的,包括控制器、事件偵聽器、中間件、隊列任務,甚至路由閉包。因此,要實現契約,您只需在被解析的類的構造函數中「類型提示」接口。
例如,查看此事件偵聽器:
redis = $redis; } /** * 處理事件 * * @param OrderWasPlaced $event * @return void */ public function handle(OrderWasPlaced $event) { // } }
契約和門面的區(qū)別
契約其實是指框架提供的一系列定義核心的服務的接口,關鍵字就是這個接口,看上面的代碼,就可以了解到這個接口提供了什么功能,我們可以將契約看做框架功能的方法定義接口,這個接口里面存放著我們需要用到的大多數方法.
門面說來說去也是提供方法的,但是我們每次要去使用到接口方法時,都需要注入相應的接口,很麻煩,所以門面誕生了,提供靜態(tài)調用,不需要注入接口.
以上就是“l(fā)aravel中契約和門面有哪些區(qū)別”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注創(chuàng)新互聯行業(yè)資訊頻道。