Laravel核心解读--Session源码解析

2018-08-11
阅读 19 分钟
3.3k
由于HTTP最初是一个匿名、无状态的请求/响应协议,服务器处理来自客户端的请求然后向客户端回送一条响应。现代Web应用程序为了给用户提供个性化的服务往往需要在请求中识别出用户或者在用户的多条请求之间共享数据。Session 提供了一种在多个请求之间存储、共享有关用户的信息的方法。Laravel 通过同一个可读性强的 API...

Laravel测试驱动开发--功能测试

2018-08-07
阅读 8 分钟
2.4k
测试驱动开发系列文章的最后一篇文章是关于功能测试的,现在的流行的架构是前后端分离所以很多时候我们并不会像文章里写的那样对响应页面进行功能测试,之前这个系列里的第一篇文章有讲如何对API进行功能测试。

Laravel核心解读 -- 外观模式

2018-07-31
阅读 3 分钟
3k
外观模式(Facade Pattern):外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。外观模式又称为门面模式,它是一种对象结构型模式。

Laravel测试驱动开发--反向单元测试

2018-07-26
阅读 9 分钟
2k
上一篇我们写的斗士正向测试;断言可以create、update、show或者delete Carousel模型对象,现在让我们进行方向测试,看看如果在执行上面那些动作失败的情况下我们应该如何控制他们?

Laravel测试驱动开发 -- 正向单元测试

2018-07-23
阅读 17 分钟
2.9k
上一篇翻译的文章里通过简单的十一步讲述了如何在Laravel中进行测试驱动开发,这是作者关于测试的第二篇文章, 文章中简述了如何在Laravel中进行增删改查的单元测试,本文中的单元测试都是正向测试,之后还会有一篇来讲述如何做反向测试。

简单的11步在Laravel中实现测试驱动开发

2018-07-16
阅读 9 分钟
2.9k
测试驱动开发(英语:Test-driven development,缩写为TDD)是一种软件开发过程中的应用方法,由极限编程中倡导,以其倡导先写测试程序,然后编码实现其功能得名。

Laravel核心解读 -- 扩展用户认证系统

2018-07-09
阅读 7 分钟
5.2k
上一节我们介绍了Laravel Auth系统实现的一些细节知道了Laravel是如何应用看守器和用户提供器来进行用户认证的,但是针对我们自己开发的项目或多或少地我们都会需要在自带的看守器和用户提供器基础之上做一些定制化来适应项目,本节我会列举一个在做项目时遇到的具体案例,在这个案例中用自定义的看守器和用户提供器来扩...

Laravel核心解读--用户认证系统的实现细节

2018-06-30
阅读 10 分钟
4.5k
上一节我们介绍来Laravel Auth系统的基础知识,说了他的核心组件都有哪些构成,这一节我们会专注Laravel Auth系统的实现细节,主要关注Auth也就是AuthManager是如何装载认证用的看守器(Guard)和用户提供器(UserProvider)以及默认的用户注册和登录的实现细节,通过梳理这些实现细节我们也就能知道应该如何定制Auth认证来...

Laravel核心解读 -- 用户认证系统(基础介绍)

2018-06-21
阅读 9 分钟
6.1k
使用过Laravel的开发者都知道,Laravel自带了一个认证系统来提供基本的用户注册、登录、认证、找回密码,如果Auth系统里提供的基础功能不满足需求还可以很方便的在这些基础功能上进行扩展。这篇文章我们先来了解一下Laravel Auth系统的核心组件。

Laravel核心解读--观察者模式

2018-06-10
阅读 4 分钟
3.2k
Laravel的Event事件系统提供了一个简单的观察者模式实现,能够订阅和监听应用中发生的各种事件,在PHP的标准库(SPL)里甚至提供了三个接口SplSubject, SplObserver, SplObjectStorage来让开发者更容易地实现观察者模式,不过我还是想脱离SPL提供的接口和特定编程语言来说一下如何通过面向对象程序设计来实现观察者模式,...

Laravel核心解读 -- 事件系统

2018-06-10
阅读 7 分钟
4.9k
Laravel 的事件提供了一个简单的观察者实现,能够订阅和监听应用中发生的各种事件。事件机制是一种很好的应用解耦方式,因为一个事件可以拥有多个互不依赖的监听器。laravel 中事件系统由两部分构成,一个是事件的名称,事件的名称可以是个字符串,例如 event.email,也可以是一个事件类,例如 App\Events\OrderShipped...

PHP发送和接收JSON请求

2018-06-06
阅读 2 分钟
23.8k
现在微服务中,很多API由于需要传递的参数较多所以要求用包含所有参数的JSON数据作为POST请求的请求体来替代FormData传递参数的方式,在参数量较多时POST JSON要比POST FormData便于开发和测试,今天我们就来看一下在PHP中如何发送和接受JOSN POST,以及在Laravel框架中针对JSON Request提供的访问JSON请求数据的便捷方法。

Laravel核心解读 -- Response

2018-05-27
阅读 9 分钟
4.9k
前面两节我们分别讲了Laravel的控制器和Request对象,在讲Request对象的那一节我们看了Request对象是如何被创建出来的以及它支持的方法都定义在哪里,讲控制器时我们详细地描述了如何找到Request对应的控制器方法然后执行处理程序的,本节我们就来说剩下的那一部分,控制器方法的执行结果是如何被转换成响应对象Response...

装饰模式(Decorator Pattern)

2018-05-24
阅读 4 分钟
2.6k
继承机制,使用继承机制是给现有类添加功能的一种有效途径,通过继承一个现有类可以使得子类在拥有自身方法的同时还拥有父类的方法。但是这种方法是静态的,用户不能控制增加行为的方式和时机。

Laravel核心解读 -- Request

2018-05-19
阅读 8 分钟
5.9k
很多框架都会将来自客户端的请求抽象成类方便应用程序使用,在Laravel中也不例外。Illuminate\Http\Request类在Laravel框架中就是对客户端请求的抽象,它是构建在Symfony框架提供的Request组件基础之上的。今天这篇文章就简单来看看Laravel是怎么创建请求Request对象的,而关于Request对象为应用提供的能力我并不会过多...

Laravel核心解读--控制器

2018-05-12
阅读 8 分钟
3.7k
控制器能够将相关的请求处理逻辑组成一个单独的类, 通过前面的路由和中间件两个章节我们多次强调Laravel应用的请求在进入应用后首现会通过Http Kernel里定义的基本中间件

Laravel核心解读--Database(四) 模型关联

2018-05-02
阅读 18 分钟
6.2k
上篇文章我们主要讲了Eloquent Model关于基础的CRUD方法的实现,Eloquent Model中除了基础的CRUD外还有一个很重要的部分叫模型关联,它通过面向对象的方式优雅地把数据表之间的关联关系抽象到了Eloquent Model中让应用依然能用Fluent Api的方式访问和设置主体数据的关联数据。使用模型关联给应用开发带来的收益我认为有...

Laravel核心解读--Database(三) 模型CRUD

2018-04-29
阅读 11 分钟
4.2k
上一篇文章我们讲了Database的查询构建器QueryBuilder, 学习了QueryBuilder为构建生成SQL语句而提供的Fluent Api的代码实现。这一篇文章我们来学习Laravel Database里另外一个重要的部分: Eloquent Model。

Laravel核心解读--Database(二) 查询构建器

2018-04-16
阅读 13 分钟
3.8k
上文我们说到执行DB::table('users')->get()是由Connection对象执行table方法返回了一个QueryBuilder对象,QueryBuilder提供了一个方便的接口来创建及运行数据库查询语句,开发者在开发时使用QueryBuilder不需要写一行SQL语句就能操作数据库了,使得书写的代码更加的面向对象,更加的优雅。

Laravel核心解读--Database(一)基础介绍

2018-04-07
阅读 9 分钟
5.8k
在我们学习和使用一个开发框架时,无论使用什么框架,如何连接数据库、对数据库进行增删改查都是学习的重点,在Laravel中我们可以通过两种方式与数据库进行交互:

Lua table 拾珍

2018-04-03
阅读 2 分钟
2.4k
table是Lua中仅有的数据结构,具有强大的功能。table类型实现了关联数组(associative array)不仅可以通过整数来索引,还可以使用字符串或者其它类型的值(除了nil)来索引。此外table没有固定的大小,可以动态地添加任意数量的元素到一个table中。基于table,可以以一种简单、统一和高效的方式来表示普通数组、符号表(...

Laravel核心解读--Facades

2018-03-25
阅读 6 分钟
6k
Facades是我们在Laravel应用开发中使用频率很高的一个组件,叫组件不太合适,其实它们是一组静态类接口或者说代理,让开发者能简单的访问绑定到服务容器里的各种服务。Laravel文档中对Facades的解释如下:

Laravel最佳实践--事件驱动编程

2018-03-18
阅读 5 分钟
3.7k
在这篇文章中我们将了解到什么是“事件驱动编程”以及在Laravel中如何开始构建一个事件驱动应用,同时我们还将看到如何通过事件驱动编程来对应用程序的逻辑进行解耦。

Laravel最佳实践--根据搜索参数为Model查询应用不同的Where条件

2018-03-08
阅读 2 分钟
7.5k
不过在做数据搜索的时候往往会遇到根据搜索参数应用不同的查询条件,比如说参数里有age值时才会给查询应用上age = value的条件搜索参数里没有age的话不对搜索的年龄进行限制。那么在Laravel里如何优雅地让查询根据参数条件应用上不同的where条件呢?我们来看一下

Laravel最佳实践--API请求频率限制(Throttle中间件)

2018-03-03
阅读 5 分钟
19.9k
在向公网提供API供外部访问数据时,为了避免被恶意攻击除了token认证最好还要给API加上请求频次限制,而在Laravel中从5.2开始框架自带的组件Throttle就支持访问频次限制了,并提供了一个Throttle中间件供我们使用,不过Throttle中间件在访问API频次达到限制后会返回一个HTML响应告诉你请求超频,在应用中我们往往更希望...

Laravel核心解读--路由(Route)

2018-02-22
阅读 13 分钟
11.2k
路由是外界访问Laravel应用程序的通路或者说路由定义了Laravel的应用程序向外界提供服务的具体方式:通过指定的URI、HTTP请求方法以及路由参数(可选)才能正确访问到路由定义的处理程序。无论URI对应的处理程序是一个简单的闭包还是说是控制器方法没有对应的路由外界都访问不到他们,今天我们就来看看Laravel是如何来设...

Laravel核心解读--中间件(Middleware)

2018-02-05
阅读 9 分钟
12.7k
中间件(Middleware)在Laravel中起着过滤进入应用的HTTP请求对象(Request)和完善离开应用的HTTP响应对象(Reponse)的作用, 而且可以通过应用多个中间件来层层过滤请求、逐步完善相应。这样就做到了程序的解耦,如果没有中间件那么我们必须在控制器中来完成这些步骤,这无疑会造成控制器的臃肿。

Laravel核心解读--服务提供器(ServiceProvider)

2018-01-20
阅读 11 分钟
11k
服务提供器是所有 Laravel 应用程序引导中心。你的应用程序自定义的服务、第三方资源包提供的服务以及 Laravel 的所有核心服务都是通过服务提供器进行注册(register)和引导(boot)的。

Laravel核心解读--服务容器(IocContainer)

2018-01-09
阅读 8 分钟
5.8k
Laravel的核心是IocContainer, 文档中称其为“服务容器”,服务容器是一个用于管理类依赖和执行依赖注入的强大工具,Laravel中的功能模块比如 Route、Eloquent ORM、Request、Response等等等等,实际上都是与核心无关的类模块提供的,这些类从注册到实例化,最终被我们所使用,其实都是 laravel 的服务容器负责的。

浅析如何通过PHP类的反射来实现依赖注入

2018-01-04
阅读 4 分钟
7k
PHP具有完整的反射 API,提供了对类、接口、函数、方法和扩展进行逆向工程的能力。通过类的反射提供的能力我们能够知道类是如何被定义的,它有什么属性、什么方法、方法都有哪些参数,类文件的路径是什么等很重要的信息。也正式因为类的反射很多PHP框架才能实现依赖注入自动解决类与类之间的依赖关系,这给我们平时的开...