简介

Lumen 是什么?

Lumen 是一个“微框架”,基于 Laravel 组件构建,是 Laravel 官方支持的微框架。Lumen 诞生的目的是更快的执行速度,它是目前所有微框架中速度最快的一个 -- 甚至明显快于同类框架,例如 Silex。

然而,和其他微框架不同的是,Lumen 能够让你利用 Laravel 框架的强大功能,例如 路由(routing)、依赖注入(dependency injection)、Eloquent ORM、数据库迁移(migrations)、队列任务(queued jobs),甚至定时指令(scheduled commands)。

Laravel 已经很快、很强大了,但是 Lumen 去除掉了 Laravel 所提供的很多配置和定制选项,为的就是尽可能地减少后台服务的加载时间。

Lumen 超快的执行速度与 Laravel 提供的方便特性相结合,让你能够同时享受到“微框架”与“宏框架”两者的优点,让开发工作更愉快。

何时应该用 Lumen?

Lumen 的设计目的是为了构建超级快速的微服务(micro-services)和API服务的。例如,如果你的 Laravel 应用程序中的某个部分承受着大大高于其他部分的工作负荷,你可以选择将这部分功能构建为一个小型、独立的 Lumen 应用程序。

通过减少 Laravel 主应用程序的负荷,能够减少对服务器的需求量,因为基于 Lumen 构建的应用程序对服务器的需求明显少于 Laravel。

当然,Lumen 应用程序可以管理队列任务从而让 Laravel 主应用程序去处理。Laravel 和 Lumen 是一对最佳拍档,联合使用时能帮你构建强大、微服务(micro-service)驱动的应用程序。

Lumen 还非常适合构建快速的 JSON API 服务,由于这种类型的应用程序通常不需要 HTTP sessions、cookies 和 模板等功能特性。

Lumen 的局限

Lumen 不像 Laravel 框架一样提供更多的配置选项。例如,你不能覆盖框架中的任何 "bootstrappers" 来彻底改变框架的结构。还有,和 Laravel 不一样的是,Lumen 不能与其他 Laravel 开发包(packages)结合使用,例如 debug bars、CMS systems 等等。

另外,Lumen 没有使用 Symfony 的路由组件,而是使用了 nikic/fast-route 以获取更高的执行效率。如果你需要使用 Symfony 路由组件的特性,例如子域名路由(sub-domain routing)或可选参数(optional parameters),建议你使用 Laravel 框架。

如果你选择使用全功能的 Laravel 框架,不要担心影响你的应用程序的执行效率。全功能的 Laravel 框架已经被很多大的、企业级的应用程序在使用,每天处理 15,000,000 次请求都是小 case。

Lumen 包含的特性

Lumen 包含了许多与 Laravel 框架相同的特色:

通过使用统一的 bootstrapping 过程,Lumen 能够提供一组健壮的功能特性,同时还能具有超高的性能,成为 PHP 领域用来实现“微服务”的最佳方案。

当然,你可以详细阅读上述提到的每一个功能特性的详细文档。