[ Laravel从入门到精通 ] 测试系列 —— 在 Laravel 中基于 PHPUnit 进行代码测试:目录结构及测试编排文件 phpunit.xml 详解

目录结构 Laravel 框架基于 PHPUnit 提供了开箱即用的测试功能,对代码测试的支持非常有好: 以 Laravel 5.8 为例,在框架初始化过程中通过 Composer 安装了 PHPUnit 7(也可以手动升级到 PHPUnit 8),并且在项目根目下创建了 tests 目录用于存放测试文件: 在该目录中包含的 Unit 和 Feature 子目录下存放的测试用例分别用...

[ Laravel从入门到精通 ] 测试系列 —— 从基于 PHPUnit 编写单元测试开始

为什么要测试 我们知道,Laravel 框架开箱提供的测试功能是基于 PHPUnit 实现的,PHPUnit 是 PHP 语言中最负盛名的单元测试框架。在介绍 Laravel 框架提供的测试功能之前,我们先从源头 PHPUnit 开始,聊聊如何在 PHP 框架中实现单元测试。 即使是很小规模的项目开发也需要数小时的辛苦编码。在开发过程中,应用代码中或多或少都会存在一些大大小小的问题,开发...

[ Laravel从入门到精通 ] 请求与响应系列 —— 异常处理篇之异常信息报告、渲染及自定义处理

上篇教程学院君大致介绍了 Laravel 异常处理底层原理,今天我们来详细介绍下进行异常处理时如何报告和渲染异常信息。 异常信息的报告 通过上篇教程的介绍,你应该知道 Laravel 是通过系统注册的异常处理器提供的 report 方法来报告异常,那么我们就来看看系统自带的异常处理器是如何定义该方法的,如果你要自定义异常报告机制的话,也可以参考该方法的实现。该方法的源码位于 vendor...

[ Laravel从入门到精通 ] 请求与响应系列 —— 异常处理篇之底层源码剖析

前面我们介绍 Laravel 中 HTTP 请求生命周期和中间件底层处理逻辑的时候,都涉及到了 vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php 这个文件,对应的 Illuminate\Foundation\Http\Kernel 类是我们 Laravel 应用 HTTP Kernel 类 App\Htt...

[ Laravel 从入门到精通 ] 请求与响应系列 —— Laravel 路由匹配和执行底层源码剖析

入口方法 通过上一篇教程,我们知道路由匹配和处理逻辑入口位于 vendor/laravel/framework/src/Illuminate/Routing/Router.php 的 dispatch 方法: public function dispatch(Request $request) { $this->currentRequest = $request; ret...

[ Laravel 从入门到精通 ] 请求与响应系列 —— Laravel 中间件底层源码剖析

前面学院君已经给大家介绍了 Laravel 一次请求生命周期底层运行逻辑,并分别就请求类和响应类的底层实现和基本使用给大家做了详细的演示,接下来,我们还是围绕请求生命周期中的组件展看,分两篇教程分别介绍中间件的底层原理和路由匹配的底层原理。首先我们来看中间件。 什么是中间件 中间件并不是 Laravel 框架所独有的概念,而是一种被广泛应用的架构模式,尤其是在 Java 中。 在 Lar...

[Laravel 5.8 文档] 官方扩展包 —— 本地开发调试解决方案:Laravel Telescope

简介 Laravel Telescope 是一个专门为 Laravel 框架打造的优雅的调试助手。Telescope 可以为进入应用的请求、异常、日志、数据库查询、队列任务、邮件、通知、缓存操作、调度任务、变量打印等所有操作提供洞察明细功能,因此,它将成为你本地 Laravel 开发环境的又一绝佳伴侣。 安装 注:Telescope 要求 Laravel 5.7.7+ 版本。你可以通...

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

简介 除了传统的基于表单的登录认证外,Laravel 还可以通过 Laravel Socialite 提供 OAuth 认证,目前支持的认证驱动包括 Facebook、Twitter、Google、LinkedIn、GitHub 和 Bitbucket。 注:其他平台的驱动可以在社区驱的 Socialite 提供者网站上找到。 升级 Socialite 升级到最新版本的 Social...

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

简介 Laravel Scout 为 Eloquent 模型全文搜索实现提供了简单的、基于驱动的解决方案。通过使用模型观察者,Scout 会自动同步更新模型记录的索引。 目前,Scout 通过 Algolia 驱动提供搜索功能,不过,编写自定义驱动很简单,你可以很轻松地通过自己的搜索实现来扩展 Scout。 注:Algolia 是一个托管式的全文搜索引擎,我们可以通过其提供的 API ...

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

简介 Horizon 为 Laravel 提供了基于 Redis 的、拥有美观后台的、代码驱动配置的队列系统。Horizon 让我们可以轻松监控队列系统的关键指标,例如任务吞吐量、运行时间和失败任务等。 所有的队列进程配置都存放在一个单独的简单配置文件中,这样的话配置文件就可以存放到源码控制以便团队所有成员的协作。 安装 注:由于 Horizon 使用了异步进程信号,所以 PHP 7...