宣布 Lumen
发布时间 作者 Eric L. Barnes
Lumen 是 Taylor Otwell 设计的一个全新的 PHP 框架,用于构建闪电般快速的微服务和 API。当速度是必要条件时,Lumen 应该是您的首选。
该框架的一个优点是,您仍然可以使用所有您喜爱的 Laravel 功能,例如 Eloquent、缓存、队列、验证、路由、中间件和强大的 Laravel 服务容器。另外,如果您使用 Lumen 启动项目,并且最终需要更强大的功能,迁移到功能齐全的 Laravel 是一个简单的过程。
为了了解更多幕后情况,我对 Taylor 关于该项目的进行了简短的采访。
是什么促使您决定创建 Lumen?
当我在构建 Envoyer 时,我编写了两个小型“微服务”来支持它。其中一个是部署后健康检查。这是一个存在于三个不同 DigitalOcean 区域的小应用程序。我使用 Silex 为该应用程序编写代码,但是我不得不重新研究如何建立 PDO 数据库连接。我更希望有一个非常小的 Laravel 安装,这样我就可以开箱即用地使用 DB::update
。
另一个 Envoyer 服务是“心跳”Cron 监控。由于这些 URL 可能被数百个,甚至数千个 Cron 作业每分钟调用一次,因此我需要它非常快。因此,我使用 Slim 为该服务编写代码。但是,我不得不再次设置一些更强大的错误处理以及数据库连接。我同样更希望有一个小的 Laravel“精简”安装。
这就是 Lumen 的想法诞生的背景。我花了三到四次迭代来构建该框架,才找到了一个足够快的解决方案。我不会发布 Lumen,除非我能说它比 Silex 和 Slim 开箱即用地更快。我不想发布一个比替代方案更慢的东西。
Lumen 这个名字是怎么来的?
Lumen 是对 Laravel 使用的“Illuminate”组件的一种发挥。Illuminate 组件是 Laravel 框架的各个组成部分,例如数据库、缓存、队列等。所以,首先,我认为 Lumen 作为名字听起来很酷。它只有两个音节,而不是像 Laravel 那样三个音节。这可能听起来很疯狂,但我确实会考虑这类事情以及当你说出这个词时所产生的心理图像。当然,它也延续了以“光”为基础的命名传统。
能够直接升级到 Laravel 太棒了。这是从一开始的计划吗?
是的,这实际上是使用构成完整栈 Laravel 框架的 Illuminate 组件的自然结果。由于我们使用这些组件,因此可以轻松提供一个非常棒的升级方案,我认为这是其他微框架解决方案中缺少的。由于 Laravel 生态系统现在包含一个完整栈框架 _和_ 一个“官方”支持的微框架,因此我们可以提供非常棒的升级方案。
您是如何在保持如此多优秀功能的同时,使该框架如此快?
这再次得益于 Illuminate 组件的便利性。基本上,我只需要以一种不同于完整栈框架的方式将它们“粘合”在一起。这意味着 Lumen 不会追求启动过程中的最大灵活性,而是选择最大速度。实际的 Lumen 框架存储库可能只有十几个文件左右。其余部分由 Illuminate 组件组成。这使我能够非常快地完善该框架的功能,尽管我花了三到四次迭代才找到一个真正非常快且仍然提供非常强大功能的解决方案。
Lumen 一定会大受欢迎,我认为您能够轻松迁移到 Laravel 是对 Lumen 以及整个 Laravel 生态系统来说的一个巨大的长期益处。要及时了解 Lumen 上所有最新动态,请务必加入 每周新闻通讯.