Laravel中间件的实现

Laravel 中间件 是通过pipeline执行的。pipeline 顾名思义,就是管道,相当于unnix中的管道符(|),laravel中间件大部分都是对request的过滤,这种过滤的行为相当于管道符对输出结果的处理,举个例子 ls -alh|grep acb.txt 这里grep abc.txt 就是对ls的结果进行处理,在laravel框架中相当于一个中间件。Laravel 中pipeline实现的方式非常简洁、有力,不但其实现原理如此,面对开发人员,它的调用方式也十分清晰,利用匿名函数使得前置与后置的调用都很直观。不过,很多人看到源码也很迷惑,因为中间存在着非常多的回调,只要...

更改Laravel的密码加密方式

我们知道laravel在数据库存储时默认的加密算法是Bcrypt,可以使用提供的辅助函数bcrypt 或者使用Hash Facade 来完成密码的加密,使用Laravel的Auth Facade来完成认证,实际上,我们在很多项目因为各种原因并不使用Bcrypt加密存储用户密码,而很多项目还在使用md5或者自己造的乱七八糟的加密方式,这里举个例子使用base64(password + salt)的加密方式来尝试无痛的更换laravel的密码加密方式,从而能够使用laravel的Auth,当然,实际的项目中我相信没人用这样的加密方式。这个例子有助于理解laravel的ServiceProvi...

从源码看Laravel queue:listen queue:work queue:work --daemon的区别

功能概述Laravel的队列监听有多个命令可以实现,其中queue:listen和queue:work --daemon仅仅从运行命令后的的表现看不出明显的区别,那么他们到底有什么区别呢?laravel给queue:listen 和 queue:work的描述分别是:queue:listen:Listen to a given queue//监听一个队列 queue:work:Start processing jobs on the queue as a daemon//作为守护进程处理队列中的任务但是好像并没有说清楚根本区别在哪里,所以我们还是简单的查看下源码来了解下根本区别.源码解读...

Laravel 访问频率限制中间件throttle的使用

访问频率限制概述频率限制经常用在API中,用于限制独立请求者对特定API的请求频率。例如,如果设置频率限制为每分钟1000次,如果一分钟内超过这个限制,那么服务器就会返回 429: Too Many Attempts.响应。通常,一个编码良好的、实现了频率限制的应用还会回传三个响应头: X-RateLimit-Limit, X-RateLimit-Remaining和 Retry-After(如果达到限制次数只能获取到 Retry-After头)。 X-RateLimit-Limit告诉我们在指定时间内允许的最大请求次数, X-RateLimit-Remaining指的是在指定时间段内剩...

为什么你应该使用Repository

这仅仅是个翻译:原文来自 http://vegibit.com/laravel-repository-pattern/Repository 模式为了保持代码的整洁性和可读性,使用Repository Pattern 是非常有用的。事实上,我们也不必仅仅为了使用这个特别的设计模式去使用Laravel,然而在下面的场景下,我们将使用OOP的框架Laravel 去展示如何使用repositories 使我们的Controller层不再那么啰嗦、更加解耦和易读。下面让我们更深入的研究一下。不使用 repositories其实使用Repositories并不是必要的,在你的应用中你完全可以不使用这...