我是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. 什么是摆脱集合