laravel中契约和门面有什么区别

发布时间 - 2022-02-15 00:00:00    点击率:
区别:1、契约是指框架提供的一系列定义核心服务的接口,而门面为IoC服务容器的类提供了静态的接口;2、契约可以看做框架功能的方法定义接口,存放着大多数方法,而门面就是提供方法的,提供静态调用,不需要注入接口。

本教程操作环境:windows10系统、Laravel6版,DELL G3电脑。

laravel中契约和门面有什么区别

介绍

Laravel 的Contracts是一组接口,它们由框架提供并定义了核心服务。例如,illuste\Contracts\Queue\Queue 契约定义了排队作业所需的方法,而 illuste\Contracts\Mail\Mailer 契约定义了发送邮件所需的方法。而Contracts也叫做契约

在我们前面的学习中,我们学到了很多辅助函数和Facades门面提供的简单方法,它不需要类型的提示就可以实现方法. 在大多数情况下,每个门面都有对应的契约方法,和facades不同,契约允许你为类定义显示依赖关系.

何时使用契约

正如在其他地方所讨论的,使用契约或 Facades 的许多决定将取决于个人喜好和开发团队的喜好。契约和 Facades 均可用于创建功能强大且经过良好测试的 Laravel 应用程序。 只要聚焦在类的职责应该单一上,您会发现使用契约还是 Facades 之间的实际差异其实很小。

如何使用契约

那么,如何实现契约呢?它其实很简单。

Laravel 中的许多类都是通过 服务容器 解析的,包括控制器、事件侦听器、中间件、队列任务,甚至路由闭包。因此,要实现契约,您只需在被解析的类的构造函数中「类型提示」接口。

例如,查看此事件侦听器:

redis = $redis;
    }
    /**
     * 处理事件
     *
     * @param  OrderWasPlaced  $event
     * @return void
     */
    public function handle(OrderWasPlaced $event)
    {
        //
    }
}

契约和门面的区别

契约其实是指框架提供的一系列定义核心的服务的接口,关键字就是这个接口,看上面的代码,就可以了解到这个接口提供了什么功能,我们可以将契约看做框架功能的方法定义接口,这个接口里面存放着我们需要用到的大多数方法.

门面说来说去也是提供方法的,但是我们每次要去使用到接口方法时,都需要注入相应的接口,很麻烦,所以门面诞生了,提供静态调用,不需要注入接口.

【相关推荐:laravel视频教程】


# laravel  # 不需要  # 是指  # 所需  # 放着  # 就可以  # 都是  # 都有  # 要去  # 说来说去  # 我们可以 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel怎么多语言本地化设置_Laravel语言包翻译与Locale动态切换【手册】  Win11怎么关闭资讯和兴趣_Windows11任务栏设置隐藏小组件  Laravel怎么实现软删除SoftDeletes_Laravel模型回收站功能与数据恢复【步骤】  如何在HTML表单中获取用户输入并用JavaScript动态控制复利计算循环  微信小程序 input输入框控件详解及实例(多种示例)  网站制作大概多少钱一个,做一个平台网站大概多少钱?  Laravel如何创建自定义Artisan命令?(代码示例)  百度输入法ai面板怎么关 百度输入法ai面板隐藏技巧  佛山企业网站制作公司有哪些,沟通100网上服务官网?  Laravel怎么上传文件_Laravel图片上传及存储配置  软银砸40亿美元收购DigitalBridge 强化AI资料中心布局  公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?  Laravel怎么生成二维码图片_Laravel集成Simple-QrCode扩展包与参数设置【实战】  如何用花生壳三步快速搭建专属网站?  Laravel Eloquent访问器与修改器是什么_Laravel Accessors & Mutators数据处理技巧  昵图网官网入口 昵图网素材平台官方入口  Laravel怎么集成Vue.js_Laravel Mix配置Vue开发环境  php 三元运算符实例详细介绍  如何在宝塔面板中创建新站点?  Laravel API资源类怎么用_Laravel API Resource数据转换  如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?  Laravel如何处理和验证JSON类型的数据库字段  Laravel如何使用Service Container和依赖注入?(代码示例)  北京网页设计制作网站有哪些,继续教育自动播放怎么设置?  成都网站制作公司哪家好,四川省职工服务网是做什么用?  js代码实现下拉菜单【推荐】  Laravel如何实现多表关联模型定义_Laravel多对多关系及中间表数据存取【方法】  Laravel如何发送系统通知_Laravel Notifications实现多渠道消息通知  Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案  英语简历制作免费网站推荐,如何将简历翻译成英文?  如何用AWS免费套餐快速搭建高效网站?  简单实现jsp分页  Laravel如何设置定时任务(Cron Job)_Laravel调度器与任务计划配置  Laravel如何实现全文搜索_Laravel Scout集成Algolia或Meilisearch教程  如何自定义safari浏览器工具栏?个性化设置safari浏览器界面教程【技巧】  东莞专业网站制作公司有哪些,东莞招聘网站哪个好?  网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?  米侠浏览器网页图片不显示怎么办 米侠图片加载修复  Android自定义listview布局实现上拉加载下拉刷新功能  使用spring连接及操作mongodb3.0实例  javascript中对象的定义、使用以及对象和原型链操作小结  如何安全更换建站之星模板并保留数据?  Laravel的路由模型绑定怎么用_Laravel Route Model Binding简化控制器逻辑  jQuery中的100个技巧汇总  Laravel Telescope怎么调试_使用Laravel Telescope进行应用监控与调试  LinuxShell函数封装方法_脚本复用设计思路【教程】  google浏览器怎么清理缓存_谷歌浏览器清除缓存加速详细步骤  香港服务器如何优化才能显著提升网站加载速度?  教你用AI润色文章,让你的文字表达更专业  制作电商网页,电商供应链怎么做?