首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel中的合同和PHP中的接口有什么区别?

问Laravel中的合同和PHP中的接口有什么区别?
EN

Stack Overflow用户
提问于 2015-12-03 17:07:27
回答 4查看 10.2K关注 0票数 18

据我所知,Laravel将接口扩展为契约,因为它们是由Laravel使用的。但这似乎有点像循环推理。仅仅因为您的项目使用了PHP特性,所以更改现有PHP特性的术语并没有增加任何价值。

还有什么别的吗?创建一个标准PHP特性的新术语背后的逻辑是什么?或者,合同中是否有一些尚未出现在接口中的特性?

编辑:为了澄清,在文档中使用合同作为专有名词使我感到困惑,正如我在托马斯的职位的评论中所解释的那样

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-12-03 17:42:15

这只是一个很好的词来描述使用接口的想法。

Laravel合同只是PHP接口,所以它们不提供任何其他功能。

您可以在文档http://laravel.com/docs/5.1/contracts中阅读有关此主题的更多内容。

票数 20
EN

Stack Overflow用户

发布于 2015-12-03 17:59:10

“合同”不是泰勒发明的新术语。这是程序员使用的一个非常常见的术语。

接口是一个契约,但是一个契约并不一定是一个接口。简单地说,接口定义了类必须实现的契约。

抽象类也是一种契约。不同之处在于,抽象类可以提供实际的实现、状态等,因此,它(在某种意义上)是一种更严格的契约。

另一个关键的区别是一个子类只能扩展一个抽象类,但是它可以实现多个接口。

因此,“合同”基本上不是一种新的命名约定。这是泰勒常用的术语。

票数 30
EN

Stack Overflow用户

发布于 2015-12-04 10:25:11

就像其他人说的那样,这只是接口的一个奇特的词,但我认为泰勒决定让它更加私人化。

我个人的意思是,接口是编程语言中一个非常广泛的/常见的词,你有你的接口,库(你可能正在使用)有它们自己的接口等等。

您只是假设作为Laravel接口的契约,它就像属于这个回购的所有接口的包装器或别名。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34072046

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档