Laravel框架关键技术解析(2)Laravel框架初识

     主要包括程序的组织结构和三个重要环节,即路由、控制器和视图。

2.1 目录组织结构

Laravel框架关键技术解析(2)Laravel框架初识

Laravel框架关键技术解析(2)Laravel框架初识

2.2 Laravel框架中的设计模式

    当你没有学一门更好的编程语言之前,你一直以为自己所用的是最好的。

    服务容器:可以将服务理解为系统运行中需要的东西,如对象、文件路径、系统配置等,服务容器就是这些东西的载体,在程序运行过程中动态地为系统提供这些服务,也可以看做是提供这些资源。

    工厂模式

    IoC模式:控制反转是将组件间的依赖关系从程序内部提到外部容器来管理,而依赖注入是指组件的依赖通过外部以参数或其他形式注入。

Laravel框架关键技术解析(2)Laravel框架初识

2.3 请求处理管道简介

    利用服务容器和服务提供者解决依赖注入及资源获取的功能,有了它就可以随时获取需要的服务,实现想要的功能。

    装饰者模式:以Laravel框架为例,在解析请求生成响应之前或之后需要经过中间件的处理,主要包括验证维护模式、Cookie加密、开启会话、CSRF保护等。在实际开发过程中有可能还需要添加新的处理功能,而这种需求正好可以被装饰者模式解决。

Laravel框架关键技术解析(2)Laravel框架初识

2.4 请求到响应的生命周期

    总之学习一项新技术总是要经历迷雾的阶段,这个阶段没有什么好方法,死记硬背记住一些概念就好了,不要急,很快就要清晰了。

    程序启动准备:入口文件,

Laravel框架关键技术解析(2)Laravel框架初识

    请求实例化:客户端发送的一个请求报文,这个报文包括请求行、请求首部和请求实体。

    开源提倡”不必重复发明*“‘

    处理请求

    中间件

    响应的发送与程序终止

2.5 服务容器与服务提供者

       当需要完成某些功能时,服务容器会通过服务提供者注册的服务完成相应的准备,如功能模块的实例化及参数配置等,然后会调用准备好的功能模块实现相应的功能。在Laravel框架中,服务容器只有一个,相当于人的一个大脑,而服务提供者遍布整个框架的各个功能模块内。

        服务容器:由Illuminate/Container/Container类实现的,该类实现了服务容器的核心功能,而Illuminate/Foundation/Application类继承了该类,主要实现了服务容器的初始配置和功能扩展。

        服务绑定:一个服务和一个关键字进行绑定,对于绑定服务的不同,需要服务容器中不同的绑定函数来实现,主要包括回调函数服务绑定和实例对象服务绑定。

        服务解析:获取服务容器对象,通过服务容器实现对应服务的解析。

        服务提供者:Laravel框架是通过服务提供者来解决服务绑定问题的,在每个功能模块中都有一个服务提供者,而服务提供者都继承了框架提供的Illuminate/Support/ServiceProvider抽象类,该抽象类中提供一个虚函数register(),所以具体类需要实现register()函数,而该函数就是用于服务绑定的。

2.6 请求与响应的操作

     请求参数的获取

Laravel框架关键技术解析(2)Laravel框架初识        

       HTTP响应:包括请求报文的请求行、首部字段和主体三部分,而对于HTTP响应实例的生成,也可以看做是对响应参数的封装过程,包括响应报文的起始行、首部字段和主体三部分,最终生成的响应实例对象常用属性及存储内容。

Laravel框架关键技术解析(2)Laravel框架初识

2.7 数据库及操作

        对于服务器程序的设计,数据库是很重要的一部分,对应数据库接口设计的好坏决定了扩展性、开发效率和执行效率。Laravel框架通过统一的接口实现对不同数据库操作的封装,使得对数据库的连接和操作变得非常容易,与数据库相关的配置在文件“config/database.php”中,可以通过修改配置文件来决定到底使用何种数据库。目前,Laravel框架支持MySQL、Postgres、SQListe和SQL Server四种数据库。

        Laravel的数据库迁移:定义了一个统一的接口来实现数据库架构的创建和维护,而这种统一的接口与底层的数据库及其操作语言都是无关的,Laravel中通过PHP语言来定义这些接口并实现数据库架构的描述,当需要将这个数据库架构移植到所支持的数据库后端时,只需要执行这个描述文件就可以了,这样就为数据库架构的修改和维护提供了极大的方便。

Laravel框架关键技术解析(2)Laravel框架初识

Laravel框架关键技术解析(2)Laravel框架初识

   查询构造器:Laravel关于数据库操作的底层使用的就是PDO扩展。