Laravel 5.5 中文文档

目录索引

由 Laravel 学院提供的 Laravel 5.5 中文学习文档,根据往期反馈,从 5.5 版本起,将不再纯翻译官方文档,而是基于示例对官方文档进行知识重构和详细阐述,尽可能降低大家学习成...

序言

快速入门

[ Laravel 5.5 文档 ] 快速入门 —— 安装配置篇

服务器要求 Laravel 框架对PHP版本和扩展有一定要求,不过这些要求 Laravel Homestead 都已经满足了,不过如果你没有使用 Homestead 的话(那真是一件很遗憾的事...

[ Laravel 5.5 文档 ] 快速入门 —— 目录结构篇

简介 Laravel 默认的目录结构试图为不管是大型应用还是小型应用提供一个良好的起点。当然,你也可以按照自己的喜好重新组织应用的目录结构,因为 Laravel 对于指定类在何处被加载没有任何...

[ Laravel 5.5 文档 ] 快速入门 —— 重量级开发环境:Homestead 安装使用详细教程

 简介 Laravel 为开发者提供了一套完善的重量级本地开发环境 —— Laravel Homestead。 Laravel Homestead 实际是一个打包好各种 Laravel...

[ Laravel 5.5 文档 ] 快速入门 —— 轻量级开发环境:Valet 安装使用详细教程

 简介 Valet 是为 Mac 打造的极简开发环境,没有Vagrant,没有虚拟机,也无需配置 /etc/hosts 文件,还可以使用本地隧道公开分享你的站点。 启动 Mac 后,...

[ Laravel 5.5 文档 ] 快速入门 —— 使用 Laradock 搭建基于 Docker 的 PHP 开发环境

 简介 Laradock 是为 Docker 提供的完整 PHP 本地开发环境,和 Homestead 一样提供了一系列打包好(包括配置)的 Do...

[ Laravel 5.5 文档 ] 快速入门 —— 使用 Laragon 在 Windows 中搭建 Laravel 开发环境

简介 之前学院君陆续写了三篇介绍 Laravel 开发环境的教程:Homestead、Valet 和 LaraDock,我都是在 Mac 系统中安装使用的,相当流畅,没有任何梗,但是对于那些使...

核心架构

[ Laravel 5.5 文档 ] 底层原理 —— 一次 Laravel 请求的生命周期

简介 当我们使用现实世界中的任何工具时,如果理解了该工具的工作原理,那么用起来就会得心应手,应用开发也是如此。当你理解了开发工具如何工作,用起来就会更加游刃有余。 这篇文档的目标就是从更...

[ Laravel 5.5 文档 ] 底层原理 —— 服务容器

简介 Laravel 服务容器是一个用于管理类依赖和执行依赖注入的强大工具。依赖注入听上去很花哨,其实质是通过构造函数或者某些情况下通过 setter 方法将类依赖注入到类中。 让我们看...

[ Laravel 5.5 文档 ] 底层原理 —— 服务提供者

简介 服务提供者是 Laravel 应用启动的中心,你自己的应用以及所有 Laravel 的核心服务都是通过服务提供者启动。 但是,我们所谓的“启动”指的是什么?通常,这意味着注册服务,...

[ Laravel 5.5 文档 ] 底层原理 —— 门面(Facades)

简介 注:对门面这个概念不理解?可参考PHP 设计模式系列 —— 门面模式(Facade)。 门面为应用服务容器中的绑定类提供了一个“静态”接口。Laravel 内置了很多门面,你可能在不知...

[ Laravel 5.5 文档 ] 底层原理 —— 契约(Contracts)

简介 Laravel 中的契约是指框架提供的一系列定义核心服务的接口。 例如,Illuminate\Contracts\Queue\Queue 契约定义了队列任务需要实现的方法,Illumin...

基础组件

[ Laravel 5.5 文档 ] 处理用户请求 —— Laravel 应用的入口:路由系列之基础入门篇

基本路由 最基本的 Laravel 路由只接收一个 URI 和一个闭包,并以此为基础提供一个非常简单优雅的路由定义方法: Route::get('hello', function () { ...

[ Laravel 5.5 文档 ] 处理用户请求 —— Laravel 应用的入口:路由系列之参数、命名和分组篇

路由参数 必选参数 有时我们需要在路由中获取 URI 请求参数。例如,如果要从 URL 中获取用户ID,需要通过如下方式定义路由参数: Route::get('user/{id}', ...

[ Laravel 5.5 文档 ] 处理用户请求 —— Laravel 应用的入口:路由系列之路由模型绑定篇

路由模型绑定 注入模型 ID 到路由或控制器动作时,通常需要查询数据库才能获取相应的模型数据。Laravel 路由模型绑定让注入模型实例到路由变得简单,例如,你可以将匹配给定 ID 的整个...

[ Laravel 5.5 文档 ] 处理用户请求 —— HTTP 请求的过滤器:中间件

简介 中间件为过滤进入应用的 HTTP 请求提供了一套便利的机制。例如,Laravel 内置了一个中间件来验证用户是否经过认证(如登录),如果用户没有经过认证,中间件会将用户重定向到登录页面,...

[ Laravel 5.5 文档 ] 处理用户请求 —— 使用中间件 VerifyCsrfToken 避免 CSRF 攻击

 简介&功能演示 跨站请求伪造(CSRF)是一种通过伪装授权用户的请求来攻击授信网站的恶意漏洞。 Laravel 通过自带的 CSRF 保护中间件让避免应用遭到跨站请求伪造攻...

[ Laravel 5.5 文档 ] 处理用户请求 —— HTTP 请求的处理层:控制器

简介 我们之前的演示示例都是将所有的请求处理逻辑放在路由文件的闭包函数中,这显然是不合理的,我们需要使用控制器类组织管理相对复杂的业务逻辑处理。控制器用于将相关的 HTTP 请求封装到一个类中...

[ Laravel 5.5 文档 ] 处理用户请求 —— HTTP 请求参数获取、Cookie设置及文件上传

访问请求实例 在控制器中获取当前 HTTP 请求实例,需要在构造函数或方法中对 Illuminate\Http\Request 类进行依赖注入,这样当前请求实例会被服务容器自动注入: &lt...

[ Laravel 5.5 文档 ] 处理用户请求 —— HTTP 响应、重定向及文件下载

创建响应 字符串 & 数组 所有路由和控制器处理完业务逻辑之后都会返回一个发送到用户浏览器的响应,Laravel 提供了多种不同的方式来返回响应,最基本的响应就是从路由或控制器返...

[ Laravel 5.5 文档 ] 处理用户请求 —— Laravel 视图渲染:Blade 模板引擎

Blade 简介 Blade 是由 Laravel 提供的非常简单但功能强大的模板引擎,不同于其他流行的 PHP 模板引擎,Blade 在视图中并不约束你使用 PHP 原生代码。所有的 Bla...

[ Laravel 5.5 文档 ] 处理用户请求 —— Laravel 视图的创建和数据传递

创建视图 视图包含应用的 HTML 代码,并将应用的控制器逻辑和表现逻辑进行分离。视图文件存放在 resources/views 目录。下面是一个简单视图示例: <!-- 该视图...

[ Laravel 5.5 文档 ] 处理用户请求 —— 辅助函数篇:请求 URL 生成

简介 Laravel 提供了多个辅助函数来帮助我们在应用中生成 URL。这些函数主要用于在视图模板和 API 响应中构建链接,或者生成重定向响应。 快速入门 生成 URL url 辅助函...

[ Laravel 5.5 文档 ] 处理用户请求 —— Session 实现、配置与使用详解

简介 由于 HTTP 协议本身是无状态的,上一个请求与下一个请求无任何关联,为此我们引入 Session 来存储用户请求信息以解决特定场景下无状态导致的问题(比如登录、购物)。Laravel ...

[ Laravel 5.5 文档 ] 处理用户请求 —— 请求表单验证及错误处理大全

 简介 Laravel 提供了多种方法来验证请求输入数据。默认情况下,Laravel 的控制器基类使用 ValidatesRequests trait,该 trait 提供了便捷方法通过...

[ Laravel 5.5 文档 ] 处理用户请求 —— 异常处理 & 错误日志

简介 Laravel 默认已经为我们配置好了错误和异常处理,我们在 App\Exceptions\Handler 类中触发异常并将响应返回给用户。本教程我们将深入探讨这个类。 注:关于 La...

前端开发

安全系列

[ Laravel 5.5 文档 ] 安全系列 —— 在 Laravel 中实现用户注册登录认证

简介 注:想要快速上手?只需要在新安装的 Laravel 应用下运行 php artisan make:auth 和 php artisan migrate,这两个命令会生成用户登录注册所需要...

[ Laravel 5.5 文档 ] 安全系列 —— 使用 Laravel Passport 实现 API 认证

简介 Laravel 通过传统的登录表单已经让用户认证变得很简单,但是 API 认证怎么实现?API 通常使用令牌(token)进行认证并且在请求之间不维护会话(Session)状态。Lara...

[ Laravel 5.5 文档 ] 安全系列 —— 在 Laravel 中实现对资源操作的权限控制

简介 除了提供开箱即用的认证服务之外,Laravel 还提供了一个简单的方式来管理授权逻辑以便控制对资源的访问权限。和认证一样,在 Laravel 中实现授权很简单,主要有两种方式:Gate ...

[ Laravel 5.5 文档 ] 安全系列 —— 在 Laravel 中对敏感数据进行加密解密

简介 Laravel 的加密器使用 OpenSSL 来提供 AES-256 和 AES-128 加密。强烈建议使用 Laravel 自带的加密设置,不要尝试推出自己“土生土长”的加密算法。所有...

[ Laravel 5.5 文档 ] 安全系列 —— 使用哈希算法在 Laravel 中实现密码加密

 简介 Laravel 的 Hash 门面为存储用户密码提供了安全的 Bcrypt 哈希算法。如果你正在使用 Laravel 应用自带的 LoginController 和 Registe...

[ Laravel 5.5 文档 ] 安全系列 —— 如何在 Laravel 中实现密码重置功能

简介 想要快速实现该功能?只需要在新安装的 Laravel 应用下运行 php artisan make:auth(如果你已经执行过此命令,可忽略),然后在浏览器中访问 http://your...

数据库操作

[ Laravel 5.5 文档 ] 数据库操作 —— 快速入门:基本配置和使用、读写分离 & 数据库事务

简介 Laravel 让连接不同数据库以及对数据库进行增删改查操作变得非常简单,不论使用原生 SQL、还是查询构建器,还是 Eloquent ORM。目前,Laravel 支持四种类型的数据库...

[ Laravel 5.5 文档 ] 数据库操作 —— 使用进阶:通过查询构建器实现高级功能

 简介 数据库查询构建器提供了一个方便的流接口用于创建和执行数据库查询。查询构建器可以用于执行应用中绝大部分数据库操作,并且能够在 Laravel 支持的所有数据库系统上工作。 注:流接...

[ Laravel 5.5 文档 ] 数据库操作 —— 在 Laravel 中轻松实现分页功能

 简介 在其他框架中,分页是件非常痛苦的事,Laravel 让这件事变得简单易于上手。Laravel 的分页器与查询构建器和 Eloquent ORM 集成在一起,并开箱提供方便的、易于使...

[ Laravel 5.5 文档 ] 数据库迁移 —— 以版本控制的方式维护数据表

 简介 所谓迁移就像是数据库的版本控制,这种机制允许团队简单轻松的编辑并共享应用的数据库表结构。迁移通常和 Laravel 的 schema 构建器结对从而可以很容易地构建应用的数据库表结...

[ Laravel 5.5 文档 ] 数据库填充器 —— 初始化测试数据的好帮手

简介 Laravel 使用填充类提供了一个简单方法来填充测试数据到数据库。所有的填充类都位于 database/seeds 目录。填充类的类名完全由你自定义,但最好还是遵循一定的规则,例如 U...

Eloquent模型

[ Laravel 5.5 文档 ] Eloquent ORM —— 入门篇:使用 Eloquent 模型进行数据库操作

简介 Laravel 内置的 Eloquent ORM 提供了一个美观、简单的与数据库打交道的 ActiveRecord 实现,每张数据表都对应一个与该表进行交互的模型(Model),通过模型...

[ Laravel 5.5 文档 ] Eloquent ORM —— 进阶篇:使用 Eloquent 模型管理关联关系

 简介 数据表经常要与其它表做关联,比如一篇博客文章可能有很多评论,或者一个订单会被关联到下单用户,Eloquent 让组织和处理这些关联关系变得简单,并且支持多种不同类型的关联关系: ...

[ Laravel 5.5 文档 ] Eloquent ORM —— Eloquent 查询返回的数据格式:集合

简介 Eloquent 返回的包含多条记录的结果集都是 Illuminate\Database\Eloquent\Collection 对象的实例,包括通过 get 方法或者通过访问关联关系获...

[ Laravel 5.5 文档 ] Eloquent ORM —— 使用访问器和修改器格式化模型数据

简介 访问器和修改器允许你在获取模型属性或设置其值时格式化 Eloquent 属性。例如,你可能想要使用 Laravel 加密器对存储在数据库中的数据进行加密,并且在 Eloquent 模型中...

[ Laravel 5.5 文档 ] Eloquent ORM —— API 资源类:架起模型与 JSON API 之间的桥梁

简介 构建 API 时,在 Eloquent 模型和最终返回给应用用户的 JSON 响应之间可能需要一个转化层。Laravel 的资源类允许你以简单优雅的方式将模型和模型集合转化为 JSON ...

[ Laravel 5.5 文档 ] Eloquent ORM —— 将模型数据序列化为数组或 JSON

简介 当构建 JSON API 时,经常需要转化模型和关联关系为数组或 JSON。Eloquent 提供了便捷方法以便实现这些转换,以及控制哪些属性被包含到序列化中。 序列化模型 &...

进阶系列

[ Laravel 5.5 文档 ] 进阶系列 —— 使用 Artisan 构建强大的控制台应用

简介 Artisan 是 Laravel 自带的命令行接口,它为我们在开发过程中提供了很多有用的命令。想要查看所有可用的 Artisan 命令,可使用 list 命令: php artisa...

[ Laravel 5.5 文档 ] 进阶系列 —— 通过事件和事件监听器实现服务解耦

简介 Laravel 事件提供了简单的观察者模式实现,允许你订阅和监听应用中的事件。事件类通常存放在 app/Events 目录,监听器存放在 app/Listeners。如果你在应用中没有看...

[ Laravel 5.5 文档 ] 进阶系列 —— Laravel 队列系统实现及使用教程

 简介 注:Laravel 现在提供了基于 Redis 的,拥有美观的后台和配置系统的 Horizon 队列扩展包,完整信息参考 Horizon文档。 Laravel 队列为不同的后...

[ Laravel 5.5 文档 ] 进阶系列 —— Laravel 中服务端与客户端事件广播实现

简介 在很多现代 Web 应用中,Web 套接字(WebSockets)被用于实现实时更新的用户接口。当一些数据在服务器上被更新,通常一条消息通过 Websocket 连接被发送给客户端处理。...

[ Laravel 5.5 文档 ] 进阶系列 —— 通过缓存构建高性能 Laravel 应用

配置 Laravel 为不同的缓存系统提供了统一的 API。缓存配置位于 config/cache.php。在该文件中你可以指定在应用中默认使用哪个缓存驱动。Laravel 开箱支持主流的缓存...

[ Laravel 5.5 文档 ] 进阶系列 —— 键值对存储系统 Redis 在 Laravel 中的使用

简介 Redis 是一个开源的、高级的键值对存储系统,经常被用作数据结构服务器,因为其支持字符串、Hash、列表、集合和有序集合等数据结构。 在 Laravel 中使用 Redis 之前...

[ Laravel 5.5 文档 ] 进阶系列 —— 集合:给 PHP 数组插上翅膀

简介 Illuminate\Support\Collection 类为处理数组数据提供了流式、方便的封装。例如,查看下面的代码,我们使用辅助函数 collect 创建一个新的集合实例,为每一个...

[ Laravel 5.5 文档 ] 进阶系列 —— 辅助函数:简化 Laravel 代码编写的利器

简介 Laravel 自带了一系列 PHP 辅助函数,很多被框架自身使用,如果你觉得方便的话也可以在代码中使用它们。 方法列表 数组函数 array_add() array_add...

[ Laravel 5.5 文档 ] 进阶系列 —— 集成 Flysystem 实现对文件系统的高级操作

简介 Laravel 基于 Frank de Jonge 开发的 PHP 包 Flysystem 提供了强大的文件系统抽象层。Laravel 集成 Flysystem 以便使用不同驱动简化对文...

[ Laravel 5.5 文档 ] 进阶系列 —— 在 Laravel 中实现邮件配置、预览和发送

 简介 Laravel 基于 SwiftMailer 库提供了一套干净、清爽的邮件 API。Laravel 为 SMTP、Mailgun、SparkPost、Amazon SES、PHP ...

[ Laravel 5.5 文档 ] 进阶系列 —— 在 Laravel 中使用多种通道实现通知发送

简介 除了支持发送邮件之外,Laravel 还支持通过多种传输通道发送通知,这些通道包括邮件、短信(通过 Nexmo)以及 Slack 等。通知可以...

[ Laravel 5.5 文档 ] 进阶系列 —— Laravel 自定义扩展包的开发和使用

简介 扩展包是添加额外功能到 Laravel 的主要方式。扩展包可以提供任何功能,小到处理日期如 Carbon,大到整个 BDD 测试框架如 Behat。 当然,有很多不同类型的扩展包。...

[ Laravel 5.5 文档 ] 进阶系列 —— 定时任务调度在 Laravel 中的实现

简介 Cron 是 UNIX、SOLARIS、LINUX 下的一个十分有用的工具,通过 Cron 脚本能使计划任务定期地在系统后台自动运行。这种计划任务在 UNIX、SOLARIS、LINUX...

测试

[ Laravel 5.5 文档 ] 测试系列 —— 快速入门:集成 PHPUnit 编写测试用例

简介 Laravel 植根于测试,实际上,内置使 PHPUnit 对测试提供支持是开箱即用的,并且 phpunit.xml 文件已经为应用设置好了。框架还提供了方便的辅助方法允许你对应用进行优...

[ Laravel 5.5 文档 ] 测试系列 —— HTTP 测试:如何测试 HTTP 请求和响应

简介 Laravel 为生成 HTTP 请求、测试输出提供了流式 API。举个例子,我们 Laravel 提供的测试示例: <?php namespace Tests\Featu...

[ Laravel 5.5 文档 ] 测试系列 —— 浏览器测试:使用 Laravel Dusk 进行浏览器测试

简介 Laravel Dusk 提供了优雅的、易于使用的浏览器自动测试 API。默认情况下,Dusk 不强制你在机器上安装 JDK 或 Selenium,取而代之地,Dusk 基于独立安装的 ...

[ Laravel 5.5 文档 ] 测试系列 —— 数据库测试:模型工厂生成及使用

简介 Laravel 提供了多个有用的工具让测试数据库驱动的应用变得更加简单。首先,你可以使用辅助函数 assertDatabaseHas 来断言数据库中的数据是否和给定数据集合匹配。例如,如...

[ Laravel 5.5 文档 ] 测试系列 —— 模拟:通过伪造事件、邮件、通知、队列、文件存储等服务简化测试

简介 测试 Laravel 应用的时候,你可能还想要“ 模拟 ”应用的特定状态,以便在测试中不让它们真的执行。例如,测试触发事件的控制器时,你可能想要模拟事件监听器以便它们不在测试期间真的执行...

官方扩展包

[ Laravel 5.5 文档 ] 官方扩展包 —— 订阅支付解决方案:Laravel Cashier

简介 Laravel Cashier 为通过 Stripe 和 Braintree 实现订阅支付服务提供了一个优雅的流式接口。它封装了几乎所有你恐惧编写的样板化的订阅支付代码。除了基本的订阅管...

[ Laravel 5.5 文档 ] 官方扩展包 —— 远程操作解决方案:Envoy Task Runner

简介 Laravel Envoy 为定义运行在远程主机上的通用任务提供了一套干净的、最简化的语法。使用 Blade 风格语法,你可以轻松为开发设置任务,Artisan命令,以及更多。目前,En...

[ Laravel 5.5 文档 ] 官方扩展包 —— 队列系统解决方案:Laravel Horizon

简介 Horizon 为 Laravel 提供了基于 Redis 的、拥有美观后台的、代码驱动配置的队列系统。Horizon 让我们可以轻松监控队列系统的关键指标,例如任务吞吐量、运行时间和失...

[ Laravel 5.5 文档 ] 官方扩展包 —— 全文搜索解决方案:Laravel Scout

简介 Laravel Scout 为 Eloquent 模型全文搜索实现提供了简单的、基于驱动的解决方案。通过使用模型观察者,Scout 会自动同步更新模型记录的索引。 目前,Scout...

[Laravel 5.5 文档] 官方扩展包 —— 第三方登录解决方案:Laravel Socialite

简介 除了传统的基于表单的登录认证外,Laravel 还可以通过 Laravel Socialite 提供 OAuth 认证,目前支持的认证驱动包括 Facebook、Twitter、Goog...

Search Results