加入收藏 | 设为首页 | 会员中心 | 我要投稿 常州站长网 (https://www.0519zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 编程要点 > 语言 > 正文

Laravel的契约怎么运用?一文带你了解Contracts契约

发布时间:2022-04-14 13:53:18 所属栏目:语言 来源:互联网
导读:这篇文章给大家分享的是有关Laravel 框架Contracts契约的内容,很多新手学习Laravel 框架时,对于为何要Laravel 的契约以及怎么样定义和使用契约不是很了解,因此分享给大家做个参考,希望大家阅读完这篇文章能有所收获。 Contracts Laravel 的契约是一组定
       这篇文章给大家分享的是有关Laravel 框架Contracts契约的内容,很多新手学习Laravel 框架时,对于为何要Laravel 的契约以及怎么样定义和使用契约不是很了解,因此分享给大家做个参考,希望大家阅读完这篇文章能有所收获。
 
       Contracts
 
       Laravel 的契约是一组定义框架提供的核心服务的接口, 例如我们在介绍用户认证的章节中到的用户看守器契约IllumninateContractsAuthGuard和用户提供器契约IlluminateContractsAuthUserProvider以及框架自带的AppUser模型所实现的IlluminateContractsAuthAuthenticatable契约。
  
       所以在自己开发的项目中,如果Laravel提供的用户认证系统无法满足需求,你可以根据需求定义看守器和用户提供器的实现类,比如我之前做的项目就是用户认证依赖于公司的员工管理系统的API,所以我就自己写了看守器和用户提供器契约的实现类,让Laravel通过自定义的Guard和UserProvider来完成用户认证。自定义用户认证的方法在介绍用户认证的章节中我们介绍过,读者可以去翻阅那块的文章。
 
       这段代码很简单,但我们要想测试这段代码的话就一定会和实际的数据库发生联系。
 
       也就是说, ORM和这个控制器有着紧耦合。如果不使用Eloquent ORM,不连接到实际数据库,我们就没办法运行或者测试这段代码。这段代码同时也违背了“关注分离”这个软件设计原则。
 
       简单讲:这个控制器知道的太多了。
 
       控制器不需要去了解数据是从哪儿来的,只要知道如何访问就行。控制器也不需要知道这数据是从MySQL或哪儿来的,只需要知道这数据目前是可用的。
 
       Separation Of Concerns 关注分离
 
Every class should have a single responsibility, and that responsibility should be entirely encapsulated by the class.

(编辑:常州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读