用Docker搭建Laravel和Vue项目的开发环境

2019-03-03
阅读 6 分钟
9.3k
在这篇文章中我们将通过Docker在个人本地电脑上构建一个快速、轻量级、不依赖本地电脑所安装的任何开发套件的可复制的Laravel和Vue项目的开发环境(开发环境的所有依赖都安装在Docker构建容器里),加入Vue只是因为有的项目里会在Laravel项目中使用Vue做前后端分离开发,开发环境中需要安装前端开发需要的工具集,当然前...

Laravel核心解读--完结篇

2019-02-22
阅读 2 分钟
4.7k
过去一年时间写了20多篇文章来探讨了我认为的Larave框架最核心部分的设计思路、代码实现。通过更新文章自己在软件设计、文字表达方面都有所提高,在刚开始决定写Laravel源码分析地文章的时候我地期望是自己和读者通过学习Laravel核心的代码能在软件设计上带来提高,这些提高主要是指两方面:

Laravel核心解读--异常处理

2019-02-07
阅读 8 分钟
4.8k
异常处理是编程中十分重要但也最容易被人忽视的语言特性,它为开发者提供了处理程序运行时错误的机制,对于程序设计来说正确的异常处理能够防止泄露程序自身细节给用户,给开发者提供完整的错误回溯堆栈,同时也能提高程序的健壮性。

Laravel核心解读--Console内核

2018-12-01
阅读 6 分钟
6.2k
上一篇文章我们介绍了Laravel的HTTP内核,详细概述了网络请求从进入应用到应用处理完请求返回HTTP响应整个生命周期中HTTP内核是如何调动Laravel各个核心组件来完成任务的。除了处理HTTP请求一个健壮的应用经常还会需要执行计划任务、异步队列这些。Laravel为了能让应用满足这些场景设计了artisan工具,通过artisan工具定...

Laravel核心解读--HTTP内核

2018-11-10
阅读 9 分钟
6.2k
Http Kernel是Laravel中用来串联框架的各个核心组件来网络请求的,简单的说只要是通过public/index.php来启动框架的都会用到Http Kernel,而另外的类似通过artisan命令、计划任务、队列启动框架进行处理的都会用到Console Kernel, 今天我们先梳理一下Http Kernel做的事情。

Laravel核心解读--ENV的加载和读取

2018-10-22
阅读 8 分钟
8.3k
Laravel在启动时会加载项目中的.env文件。对于应用程序运行的环境来说,不同的环境有不同的配置通常是很有用的。 例如,你可能希望在本地使用测试的Mysql数据库而在上线后希望项目能够自动切换到生产Mysql数据库。本文将会详细介绍 env 文件的使用与源码的分析。

Laravel核心解读--Contracts契约

2018-09-30
阅读 4 分钟
4k
通过上面几个契约的源码文件我们可以看到,Laravel提供的契约是为核心模块定义的一组interface。Laravel为每个契约都提供了相应的实现类,下表列出了Laravel为上面提到的三个契约提供的实现类。

Laravel核心解读--Cookie源码分析

2018-09-01
阅读 10 分钟
5.8k
为了安全起见,Laravel 框架创建的所有 Cookie 都经过加密并使用一个认证码进行签名,这意味着如果客户端修改了它们则需要对其进行有效性验证。我们使用 Illuminate\Http\Request 实例的 cookie 方法从请求中获取 Cookie 的值:

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

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

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

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

Laravel核心解读 -- 外观模式

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

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

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

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

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

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

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

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

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

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

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

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

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

Laravel核心解读 -- 事件系统

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

Laravel核心解读 -- Response

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

Laravel核心解读 -- Request

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

Laravel核心解读--控制器

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

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

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

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

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

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

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

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

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

Laravel核心解读--Facades

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

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

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

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

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

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

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

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

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