Laravel 6 - 第九章 契约

本文详细介绍了Laravel6中的契约机制,包括创建接口、服务类实现、服务提供者注册以及如何在代码中利用契约进行依赖管理和模块化设计。强调了契约在提高代码可读性、可维护性和可测试性方面的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文章目录

Laravel 6 - 第一章 简介
Laravel 6 - 第二章 项目搭建
Laravel 6 - 第三章 文件夹结构
Laravel 6 - 第四章 生命周期
Laravel 6 - 第五章 控制反转和依赖注入
Laravel 6 - 第六章 服务容器
Laravel 6 - 第七章 服务提供者
Laravel 6 - 第八章 门面
Laravel 6 - 第九章 契约
Laravel 6 - 第十章 路由
Laravel 6 - 第十一章 中间件
Laravel 6 - 第十二章 控制器
Laravel 6 - 第十三章 请求
Laravel 6 - 第十四章 响应
Laravel 6 - 第十五章 验证器
Laravel 6 - 第十六章 Artisan命令
Laravel 6 - 第十七章 配置数据库
Laravel 6 - 第十八章 模型
Laravel 6 - 第十九章 模型文件



一、契约(Contracts)

契约(Contracts)主要用于定义一组接口来规范服务的功能结构。使用契约可以定义应用程序应该如何使用这些功能,而不必关心这些功能的具体实现,有助于增加代码的可读性、可维护性和可测试性。

Laravel 6 框架提供了许多内置的契约,如:认证、数据库查询构造器、邮件发送契约等。


二、自定义契约

1.创建契约接口

首先,需要创建一个新的接口来定义契约,建议契约相关文件都放在app/Contracts下,如没有该文件夹则手动创建即可。如:创建一个支付相关的契约,可先创建 PayContract.php 接口文件,并定义两个方法:procPayment()refundPayment(),如下:
在这里插入图片描述

2.创建服务类

1中的例子,创建服务类 PayService,用于实现 PayContract,如下:
在这里插入图片描述

3.服务提供者

12中的例子,根据( Laravel 6 - 第七章 服务提供者 )创建一个新的服务提供者,如下:
在这里插入图片描述
也可直接在 app/Providers/AppServiceProvider.php 中注册 服务供者

4.使用契约

接上述例子,注册好 服务提供者 之后,在控制器或其他类中,可以这样使用契约,如下:
在这里插入图片描述


三. 总结

由于代码现在依赖于契约而不是具体的实现类。因此,不需要担心具体的实现细节,更不用在大型复杂的类中跟踪哪些方法可用。

通过自定义契约可以确保应用程序保持清晰、模块化和可测试的结构,同时允许开发人员轻松地替换或扩展组件和服务。

官方文档中有一个章节是比较 契约门面的,其中说到:多数情况下,每个门面都有一个等效的契约。根据官方文档内容很容易导致大家理解混淆;其实, 契约门面 的功能完全不同,作用也不同,具体使用哪个需要大家根据实际项目情况使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

逆旅岁月

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值