一个 Laravel 请求的完整生命周期

为什么生命周期不在第一节开始讲,就怕如果不理解所谓的IoC、Facade、中间件之类的概念,生命周期理解起来生命周期理解出来可能有一定的难度。 源码剖析 Laravel 应用的所有请求入口都是 public/index.php 文件。打开index.php 发现代码也就几行。 define('LARAVEL_START', microtime(true)); require __DI...

Laravel 中间件、管道之面向切面编程

Laravel中间件是什么 Laravel 中间件提供了一种方便的机制来过滤进入应用的 HTTP 请求。例如,Laravel 内置了一个中间件来验证用户的身份认证。如果用户没有通过身份认证,中间件会将用户重定向到登录界面。但是,如果用户被认证,中间件将允许该请求进一步进入该应用。 当然,除了身份认证以外,还可以编写另外的中间件来执行各种任务。例如:CORS 中间件可以负责为所有离开应用的...

Contracts 契约之面向接口编程

这一节的内容很简单。其实在我们讲依赖注入的时候已经说过了。我们再来具体解释一下。 契约定义 什么是契约?契约就是所谓的面向接口编程。我们拿之前的例子说如果不使用接口会有什么问题。 // 文件记录日志 class FileLog { public function write(){ echo 'file log write...'; } } // 数据库...

如何实现 IoC 容器和服务提供者是什么概念

IoC 容器和服务提供者 上一节我们的代码还是没有完全达到解偶,假如我们项目里有很多功能用到了这个login功能,我们则在这几个页面反复写。但是突然我们有一天换需求了,觉得数据库记录日志不太好,想要改成文件的,那我们不是每个页面用到login功能的都去替换成new FileLog()呢?,那改如何修改呢? 我们可以借助一个容器,提前把log,user都绑定到Ioc容器中。User的创建交...

Laravel 框架深入核心系列教程

为什么选择 Laravel?下面分别去拿优点缺点来对比。 优点 laravel的就是为 WEB 艺术家创造的 PHP 框架,它也是php工程化的趋势。 社区非常完善,帖子质量都相对都比较高。 基于composer构建,丰富的扩展包。 github star在php分类排名第一 缺点 laravel性能不怎么样?比其他框架运行起来差几倍? laravel上手难? 针对性能这块呢?我...

[ Laravel 从入门到精通 ] 用户认证与授权系列 —— 基于 CAS 实现通用的单点登录解决方案(三):用户单点退出实现

前面两篇教程学院君陆续介绍了 CAS 单点登录实现原理,CAS Server 及 Client 环境搭建和单点登录流程演示,这篇教程我们简单来介绍下 CAS 单点退出实现。 原理概述 基于 CAS 单点登录系统的退出主要包含两个部分: CAS 客户端应用的退出 CAS 服务端退出登录状态 我们在 CAS 客户端应用退出后将页面重定向到服务端退出登录状态,然后通过传递过去的回跳地址跳转...

[ Laravel 从入门到精通 ] 用户认证与授权系列 —— 基于 CAS 实现通用的单点登录解决方案(二):CAS 客户端搭建及单点登录测试

上篇教程学院君给大家介绍了 CAS 单点登录原理以及 CAS Server 端搭建,这篇教程我们书接上篇,着手客户端测试应用搭建和完整单点登录流程演示。 客户端配置 首先我们创建两个用于单点登录测试的客户端 Web 应用 testapp 和 otherapp(如果对应应用之前已经存在,则无需重复创建),下面我们以 testapp 为例,进行初始化配置和演示,otherapp 依葫芦画瓢即...

[ Laravel 从入门到精通 ] 用户认证与授权系列 —— 基于 CAS 实现通用的单点登录解决方案(一):CAS 原理及服务端搭建

什么是 CAS 上篇教程我们介绍了单点登录,以及如何基于 Cookie 实现简单的单点登录,这篇教程,我们将基于 CAS 实现更加通用的单点登录解决方案,不再受域名约束。 CAS(Central Authentication Service)是耶鲁大学的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录解决方案。采用 CAS 最大的因素是从安全性角度来考虑,用户在 CAS 服务...