《使用php轻框架-lumen搭建api服务》

二. 遇见Laravel和Lumen

唯恐是出于c++后端的背景,以前在腾讯也是行使c++达成cgi来形成web服务。笔者驾驭上达成app后端API服务较好的框架应该是那样的

  1. 能够裁剪模块,以升级效能
  2. 更好的第叁方软件的军管,类似于npm对于nodejs,pip对于python

Laravel在国外的市场份额是率先,文书档案全面仔细,不过在中华不太流行。

Lumen是Laravel的剪裁版本,为了拿走属性上更好的进项。

lumen VS silex VS slim

lumen VS laravel

并且,有了依据composer的laravel和lumen,我们就足以定制本身的第二方工具以来,比如:

swoole
C扩张完结的PHP异步并行网络通讯框架,可以另行定义PHP。过去PHP只可以做Web项目,今后有了Swoole。任意服务器端程序都足以用PHP来写。
swoole_framework,基于swoole扩大开发的贰个付出框架
php-webim,基于swoole实现的Web即时聊天工具,支持websocket+http
comet长链接推送,能够发送文字内容和图纸
workerman,类似swoole,可是是纯PHP完结的,官网有过多演示项目。底层作用比swoole少一些,但相对简单,应用范围的法力比swoole丰裕。
zephir,这么些某些厉害,能够用类似PHP的一种中间代码写程序,然后自动转为C++,并视作扩张来运作。能够缓解PHP语言密集总结品质差的题材。
redis-async,基于swoole扩大写的异步redis客户端,压测起来品质跟Go语言之类的大半

php好的车轮们

三. 首要模块使用表明

  1. 布局管理
    lumen使用了.env文件来保护大局的参天优先级变量。变量取值.env中的优先级最高。(https://github.com/vlucas/phpdotenv)
    ,那些布局一般存放online的配置,在app/conf文件夹存放offline配置。并且,将.env添加到gitingore能够制止online正式环境的布置音讯寄存在代码中程导弹致的安全风险

示例:读取
$dotenv = new Dotenv\Dotenv(DIR);
$dotenv->load();
$s3_bucket = getenv(‘S3_BUCKET’);
$s3_bucket = $_ENV[‘S3_BUCKET’];
$s3_bucket = $_SERVER[‘S3_BUCKET’];

  1. 数据库
    为了获得更好的履行效能,lumen默许使用了QueryBuilder而不是基于O奇骏M的Eloquent来与数据库通讯。其规律是提供了营造sql语句的高等级语法,类似的工具如:medoo

  2. 文件系统操作
    lumen援助地点文件和云存款和储蓄的读写,通过铺排即可切换。

lumen文件系统支持
  1. cache
    lumen支持内部存款和储蓄器,文件,memcached,redis各样kv存款和储蓄。
lumen cache服务
  1. 队列和布置任务
    贰个很普遍的急需正是:第①遍注册,希望一天后发贰个唤起的音讯来升高用户重复登录的作为。
    这些必要通过lumen能够很好的兑现
    1)注册请求拼装好须求的job信息,填写delay时间(如:24钟头)放入义务队列beanstalkd
put job入队列



2)当job到达预定时间会进入ready队列,这时通过每分钟运行的计划任务可以执行对应的job任务(也可以使用linux自带的crontab实现)



计划任务
  1. 接纳新的composer管制的第叁方组件

    lumen使用到的可选的机件列表

瞩目:在上线以前须求优化composer的autoloader

composer dump-autoload –optimize
不加这一选项,你或许会发觉十分之二到百分之二十五的习性损失

四. 参考资料

  1. Laravel中文官网
  2. Laravel英文官网
  3. 电子书《Easy Laravel
    5》
  4. 互联网micro service架构
  5. 使用beanstalk搭建队列服务

一. 源起

事先负责为二个远门类的app创设micro-service架构的后端服务。个中负责php框架技术选型的一对标题。当时的背景如下:

  1. 【坑多】第③条业务线使用ci框架,发现会中诸多坑,并且继续不易于保险(变量的效益范围)。
  2. 【品质不好】php作为关键的逻辑后端,品质上仰望也有较高的管教。
  3. 【耦合重,不易扩充】当时调查商量了silex,slim,laravel等等,最终为了兑现成效依然根据自身开发的轻量级框架形成了第2版。计算回想当时的痛点
    1)配置线上和线下四个版本的保卫安全(要求来回切换,出现过上线后由于配备没有check到导致难点回滚的状态)
    2)mysql,memcache,log,redis的轮子都是友好造的,实际应用发现先后的健壮性不足

相关文章