据我所知,Laravel将接口扩展为契约,因为它们是由Laravel使用的。但这似乎有点像循环推理。仅仅因为您的项目使用了PHP特性,所以更改现有PHP特性的术语并没有增加任何价值。
还有什么别的吗?创建一个标准PHP特性的新术语背后的逻辑是什么?或者,合同中是否有一些尚未出现在接口中的特性?
编辑:为了澄清,在文档中使用合同作为专有名词使我感到困惑,正如我在托马斯的职位的评论中所解释的那样
发布于 2015-12-03 17:42:15
这只是一个很好的词来描述使用接口的想法。
Laravel合同只是PHP接口,所以它们不提供任何其他功能。
您可以在文档http://laravel.com/docs/5.1/contracts中阅读有关此主题的更多内容。
发布于 2015-12-03 17:59:10
“合同”不是泰勒发明的新术语。这是程序员使用的一个非常常见的术语。
接口是一个契约,但是一个契约并不一定是一个接口。简单地说,接口定义了类必须实现的契约。
抽象类也是一种契约。不同之处在于,抽象类可以提供实际的实现、状态等,因此,它(在某种意义上)是一种更严格的契约。
另一个关键的区别是一个子类只能扩展一个抽象类,但是它可以实现多个接口。
因此,“合同”基本上不是一种新的命名约定。这是泰勒常用的术语。
发布于 2015-12-04 10:25:11
就像其他人说的那样,这只是接口的一个奇特的词,但我认为泰勒决定让它更加私人化。
我个人的意思是,接口是编程语言中一个非常广泛的/常见的词,你有你的接口,库(你可能正在使用)有它们自己的接口等等。
您只是假设作为Laravel接口的契约,它就像属于这个回购的所有接口的包装器或别名。
https://stackoverflow.com/questions/34072046
复制相似问题