我是Laravel新手&我想知道它的一些功能,請致電Contracts
。
(如果我的問題沒有到位,請告訴我爲什麼,不要只是低估它)。
因此,從我在Laravel文檔中發表的看法以及在Laracasts視頻中說出的內容,我明白了他們只是類實現的接口。
那麼它有什麼好處呢?如果我或其他人將實現這些接口都需要通過接口,然後我根本不需要改變我的代碼?
這就是爲什麼Laravel將它的實現用作合同的原因嗎? 另外我想知道,爲了實現實現,我必須將實現綁定到合同上?什麼是Laravel合同?
2
A
回答
2
是的,我認爲你的理解大多是正確的。我會嘗試用一個例子來解釋。假設您有一個PackageDeliveryServiceContract
,它有一些方法,如trackPackage
,getShippingCost
。
您創建FedexDeliveryService
以遵守合同並實施這些方法。
在您的控制器中,您可以注入PackageDeliveryServiceContract
並立即開始使用它。 (你熟悉laravel的依賴注入嗎?)。
比方說,稍後你決定你不再想使用Fedex並使用UPS代替。然後,您可以創建UPSDeliveryService
,這也符合該合同。
現在,您需要做的就是將您的綁定從FedexDeliveryService
更改爲UPSDeliveryService
,並且不需要對控制器代碼進行任何更改。
通常,您將在服務提供商內部創建合同和實施之間的綁定,例如app/Providers/AppServiceProvider.php
相關問題
- 1. 什麼是比較合同?
- 2. WCF中的服務合同是什麼?
- 3. GCHandle.Alloc(Object)的合同究竟是什麼?
- 4. winRT中的聯繫合同是什麼?
- 5. 什麼是合同優先和最後合同?
- 6. 什麼是laravel render()方法?
- 7. 什麼是「有」,並在laravel
- 8. Laravel的回覆是什麼?
- 9. Laravel什麼是警衛?
- 10. 什麼是混合
- 11. 什麼是「聚合」
- 12. 什麼是$數組[] = $價值在laravel集合相當於
- 13. Solidity:合同調用另一個合同和地址是不同的,爲什麼?
- 14. 什麼保存之間是不同的(),創建於laravel 5
- 15. 在創建Laravel項目時,Composer的不同標誌是什麼?
- 16. 爲什麼ServiceBehavior是服務類的屬性而不是合同?
- 17. 什麼是合同類以及它是如何使用的
- 18. 什麼是結合數據
- 19. 什麼是順序組合?
- 20. 什麼是「合併泡沫」?
- 21. KeyedCollection是什麼的集合?
- 22. 什麼是聯合配置?
- 23. 什麼是'複合圖案'?
- 24. 什麼是合併衝突?
- 25. 什麼是鬆耦合?
- 26. 什麼是java集合?
- 27. 什麼是集合<?>
- 28. 什麼是解析集合?
- 29. 什麼是ASP.NET MVC結合
- 30. 什麼是擺脫集合