上图列出了LaravelHTTP层的相关知识大纲。由于我目前工作中的网页、APP、小程序都是前后端分离实现的,前端页面通过接口从后端获取数据,自己渲染,所以Session、View、而outline中的CSRF保护部分不会做整理。也仅限于HTTP层的内容太多。在这篇文章中,我将对路由、中间件、控制器的内容进行梳理。下一期我们会整理HTTP请求、响应和表单验证的内容。0x00Routing基本路由最基本的路由只需要一个URI和一个闭包。所有Laravel路由都在routes目录下的路由文件中定义。Laravel默认提供了两个路由文件web.php和api.php。前者定义网页路由,默认应用web中间件组;后者定义了无状态路由并应用了api中间件组。Laravel的RouteFacade提供了get、post、put、patch、delete、options、match、any等路由方法,支持响应单个、多个、所有HTTP方法。路由参数Laravel可以通过多种方式来约束路由参数的强制格式、可选格式和特定??格式。命名路由Laravel可以命名特定的路由或控制器方法,也可以为命名路由生成URL。路由组Laravel的路由组允许共享路由属性。常用的路由组包括中间件、命名空间、子域路由和路由前缀。路由模型绑定Laravel路由模型绑定提供了一种方便的方式来自动将模型注入路由,无论是隐式还是显式。隐式绑定时,默认绑定Eloquent模型的ID字段。绑定键名可以通过模型的getRouteKeyName方法自定义。显式绑定是使用路由的模型方法为已有参数声明类。0x01路由中间件Laravel中间件提供了一种方便的机制来过滤进入应用程序的HTTP请求。将中间件视为HTTP请求必须通过才能触发您的应用程序的一系列“层”。每一层都可以检查传入的请求,甚至可以完全拒绝对您的应用程序的访问。中间件的常见示例包括身份验证中间件、日志记录中间件、CSRF中间件等。多个单独的中间件也可以定义为一个中间件组。Laravel带有开箱即用的web和api中间件。0x02Controller控制器可以将相关的请求处理逻辑组合成一个类。它是在路由文件中以闭包的形式定义所有请求处理逻辑的另一种形式。资源控制器Laravel资源路由可以将典型的CRUD路由分配给一个控制器,仅需一行代码即可实现,大大提高了后台业务的开发效率。以照片控制器为例,两步就可以定义处理应用程序保存的所有照片的HTTP请求的业务。一行命令创建一个控制器,并为这个控制器注册一个资源路由。资源路由的声明会创建多个路由来处理各种资源操作,这些操作包含在控制器中。除了提供默认操作外,还可以根据需要自定义操作。您可以只定义部分资源路由。您可以覆盖默认资源路由名称。您可以覆盖资源路由的默认参数名称。您可以实现资源URI的语言本地化。您可以附加其他所需的资源。控制器依赖注入和控制器Laravel使用服务容器来解析所有控制器。您可以在控制器的构造函数方法中对任何依赖项使用类型约束,也可以在控制器方法中使用依赖项类型约束。后续步骤在下一期中,我将整理我在LaravelHTTP请求、响应和表单验证方面的知识。这些是任何Web应用程序中最重要的部分。思维导图在导出过程中会变得模糊。如需高清思维导图源文件,请加微信公众号:up2048,回复“思维导图”获取。-EOF-推荐阅读Laravel思维导图Laravel核心概念Laravel思维导图Laravel入门指南十五幅思维导图带你快速学习PHP语言基础我心目中的网络接口设计流程是怎样的?多平台统一用户系统设计
