对于Laravel 5.5核心架构的深入理解
前言
本文主要给大家介绍了关于Laravel 5.5核心架构的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。
1、依赖注入
方法传入组件名,框架会自动实例化,方法内可直接使用
例如最常用的requert对象
2、服务容器
其实,Laravel 的核心就是一个 IoC 容器,Laravel 的核心本身十分轻量,并没有什么很神奇很实质性的应用功能。很多人用到的各种功能模块比如 Route(路由)、Eloquent ORM(数据库 ORM 组件)、Request(请求)以及Response(响应)等等等等,实际上都是与核心无关的类模块提供的,这些类从注册到实例化,最终被你所使用,其实都是 Laravel 的服务容器负责的。
服务提供者主要分为两个部分,register(注册) 和boot(引导、初始化)
3、服务提供者
一个类要被容器所能够提取,必须要先注册至这个容器。既然 Laravel 称这个容器叫做服务容器,那么我们需要某个服务,就得先注册、绑定这个服务到容器,那么提供服务并绑定服务至容器的东西,就是服务提供者(Service Provider)。
4、向IOC 容器添加自己的类
4.1、新建validate类
4.2、新建validateProvider
4.3、绑定validate类到Provider
<"text-align: center">![]()
4.5、使用
4.6、成功!
5、门面(facade)
facade用来提供统一的接口,比如无论你用哪种cache,redis还是memcache,客户端都可以用cache::get()方式来获取value,至于具体是用了redis还是memcahe,就看你在sevice provider里面绑定了哪个。cache::get()的实现方式是,继承Facade方法getFacadeAccessor,返回你在容器中绑定的key值,比如cache,然后Facade类会使用php魔术变量__callstatic(),callstatic的逻辑里面会从container里解析cache所绑定的服务,就是前面提到的service provider绑定了谁
5.1、例如config/app.php里的mail
5.2、这个类只返回一个mailer
5.3、如果调用它的send方法,不存在的话会进入到callstatic的魔术方法
5.4、这个方法会得到mailer的实例,即app('mailer')
5.5、这个实例便能调用mailer类的send方法
6、契约
Laravel 的契约是一组定义框架提供的核心服务的接口。例如,Illuminate\Contracts\Queue\Queue契约定义了队列任务所需的方法,而Illuminate\Contracts\Mail\Mailer契约定义了发送电子邮件所需的方法。框架对每个契约都提供了相应的实现。
好处是实现了程序的低耦合和简单性。
低耦合#
首先,让我们来看一些高耦合缓存实现的代码。如下:
上一篇:支持汉转拼和拼音分词的PHP中文工具类ChineseUtil<"htmlcode"><"color: #ff0000">总结以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。
下一篇:php 广告点击统计代码(php+mysql)
在对骁龙X Elite参考设计的初步测试中,全新的Chrome浏览器在Speedometer 2.1基准测试中实现了显著的性能提升。
预计在2024年年中之前,搭载骁龙X Elite计算平台的PC将面世。该浏览器的提前问世,有助于骁龙PC问世就获得满血表现。
谷歌高级副总裁Hiroshi Lockheimer表示,此次与高通的合作将有助于确保Chrome用户在当前ARM兼容的PC上获得最佳的浏览体验。