Swoole实现即时聊天服务

需求背景

就技术面而言,即时通讯对很多人或公司来说已经没有什么门槛,技术方案有如雨后春笋,也各有千秋,也有不少专业提供第三方服务的公司,如云信融云等等,几个大厂(阿里云腾讯云)也有提供云服务。

第三方应用共享Laravel项目Session

Laravel 框架越来越被PHP开发者青睐,被应用得越来越广泛,大家都恨不得全部用它来重构项目,boss们当然不会同意,但是我们作为工程师也是不会放弃的,那要怎么办呢?

没错,按模块拆分重构,比如注册登入等小模块先重构。

让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。我常常就想:这段程序明明在我电脑运行好好的,为什么会出现这种情况呢?
因为,我们永远都无法预测用户使用时会发生的各种情况。所以防御性编程可以让我们减少很大一部分错误。