Eloquent ORM 中的 find 方法的实现流程

Eloquent ORM是什么? Laravel 的 Eloquent ORM 提供了漂亮、简洁的 ActiveRecord 实现来和数据库交互。每个数据库表都有一个对应的「模型」用来与该表交互。你可以通过模型查询数据表中的数据,并将新记录添加到数据表中。 简单例子 namespace App; use Illuminate\Database\Eloquent\Model; cla...

Laravel 事件之观察者模式

观察者模式 Laravel的事件提供了一个简单的观察者实现,能够订阅和监听应用中发生的各种事件。 既然用到观察者实现,那我们先来说下什么是观察者 观察者模式(Observer),当一个对象的状态发生改变时,依赖他的对象会全部收到通知,并自动更新。 场景:一个事件发生后,要执行一连串更新操作.传统的编程方式,就是在事件的代码之后直接加入处理逻辑,当更新得逻辑增多之后,代码会变得难以维护.这...

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

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

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