让Lumen支持请求控制

Lumen 是你构建微服务架构和 API 应用的完美解决方案,事实上,她是全宇宙最快的框架之一,甚至要快过以速度著称的 SilexSlim,现在,为你的 Laravel 应用程序编写微服务架构变得再简单不过了。

但是你在使用的过程中,你会发现很多 Laravel 中好用的功能都被精简了,比如说请求控制中间件 Throttle。这个中间件能简单的实现请求控制。那么接下来跟我一起为 Lumen 重新添加这么好用的功能吧。

让Lumen支持Session

官方介绍:https://lumen.laravel-china.org/docs/5.3/authentication

Lumen 虽然与 Laravel 使用了相同的底层类库实现,但是因 Lumen 面向的是无状态 API 的开发,不支持 session,所以默认的配置不同。Lumen 必须使用无状态的机制来实现,如 API 令牌(Token)。

也就是说Lumen内核已经剥离了Cookie、Session,如果需要使用到,需要增加安装,经过一阵折腾,终于整好了,顺便记录下来。

让Lumen支持Cookie

官方介绍:https://lumen.laravel-china.org/docs/5.3/authentication

Lumen 虽然与 Laravel 使用了相同的底层类库实现,但是因 Lumen 面向的是无状态 API 的开发,不支持 session,所以默认的配置不同。Lumen 必须使用无状态的机制来实现,如 API 令牌(Token)。

也就是说Lumen内核已经剥离了Cookie、Session,如果需要使用到,需要增加安装,经过一阵折腾,终于整好了,顺便记录下来。

PHP君子加密

因为Github Page没办法支持php代码运行,之前的PHP君子加密没办法直接运行了,把源码放出来,大家自己部署吧。

解决PHP输出UTF-8编码的csv乱码问题

众所周知,UTF-8已经一统天下了,但是微软office默认使用的还不是它,经常在使用程序生成CSV的时候总是看到的是乱码,其实office并非顽固分子,在早期版本已经增加了对UTF-8的支持,但是你要告诉他,你的数据是UTF-8。

怎么做呢?

实现自定义apk安装包

需求:

突然收到老大的需求,要对产品进行一次推荐好友安装的活动,每个会员下载自己的专属安装包(里面记录会员的相关信息)。

思路:

经过了解,发现apk安装包原来只是zip的一个马甲,使用php的ZipArchive类可以对文件进行操作。

防御性编程

在公司,我们碰到的很大一部分问题都是NullPointerException。我常常就想:这段程序明明在我电脑运行好好的,为什么会出现这种情况呢?
因为,我们永远都无法预测用户使用时会发生的各种情况。所以防御性编程可以让我们减少很大一部分错误。

nginx安全配置之白名单设置

网站安全,防不胜防

你永远不知道黑客利用什么漏洞对你的网站进行攻击,最常见的手段是利用漏洞在你的网站留个后门,喜欢的时候来逛逛,比如玩你的服务器上传一个x.php,直接访问:

1
http://www.example.com/a/b/c/d/a.php

然后就可以为所欲为了,那么有没有办法让黑客即使利用漏洞上传了php代码而没办法运行呢?答案是肯定的。

思路是从运行php的php-fpm着手,在nginx上做配置,客官请看配置。

内网机器的获取公网IP的方法

1
2
3
4
5
6
7
function getClientIp(){  
$socket = socket_create(AF_INET, SOCK_STREAM, 6);
$ret = socket_connect($socket,'ns1.dnspod.net',6666);
$buf = socket_read($socket, 16);
socket_close($socket);
return $buf;
}

缺点:依赖第三方,效率与网络状况有关。