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上手难? 针对性能这块呢?我...

基于 Swoole 构建高性能 Laravel 应用系列 —— Swoole 安装与入门

Swoole 概述 Swoole 是面向生产环境的 PHP 异步网络通信引擎。使用纯 C 语言编写(Swoole 4 开始逐渐改为通过 C++ 编写),提供了 PHP 语言的异步多线程服务器、异步 TCP/UDP 网络客户端、异步 MySQL、异步 Redis、数据库连接池、AsyncTask、消息队列、毫秒定时器、异步文件读写、异步 DNS 查询。除了异步 IO 的支持之外,Swool...

[ 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 服务...

[ Laravel 从入门到精通 ] 用户认证与授权系列 —— 通过 Cookie 实现基于 Session 的单点登录

单点登录及实现思路 单点登录(Single Sign On),简称为 SSO,意思是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的其它应用系统。一般常用于同一家公司的不同子系统之间的登录认证。 单点登录有多种实现方式,这里我们只介绍两种,一种是基于 Cookie 凭证,这种方式适用于子系统之间主域名一致,因为只有这样才能让不同子系统之间共享 Cookie;另一种是通过 CA...

[ Laravel 从入门到精通 ] 用户认证与授权系列 —— 通过监听注册登录、邮箱验证事件实现简单的积分功能

如果你的网站有积分功能,往往会给新注册激活的用户一定的初始积分,每日签到/登录积分奖励等,在 Laravel 框架驱动的应用中,我们可以通过监听相应的事件来设置用户积分,下面我们就来简单演示其实现过程,并以此为例介绍用户注册登录事件监听及处理。 用户注册、登录和邮箱验证事件类 Laravel 框架底层已经提供,我们只需要通过事件监听器或订阅者来监听处理这些事件即可。 注:关于事件类的定...