Laravel 5.2 API 与 Lumen 相比如何? [复制]

Posted

技术标签:

【中文标题】Laravel 5.2 API 与 Lumen 相比如何? [复制]【英文标题】:How does Laravel 5.2 API compare to Lumen? [duplicate] 【发布时间】:2016-11-26 23:03:35 【问题描述】:

我将创建一个包含许多请求的 API(每分钟最少约 5000 个,但可能更多)。我想知道哪个框架更好:Laravel 5.2 还是 Lumen?

Lumen 是一个微型框架,专为 API 设计,但从 Laravel 5.2 开始,可以更改中间件。所以对于我的api我只能绑定我需要的中间件,所以没有身份验证等等。

这与加载完整框架的早期版本的 Laravel 有很大不同。那么是从 5.2 开始仍然建议使用 Lumen 还是性能差异非常非常小?

【问题讨论】:

不这么认为,因为这是专门针对 API 禁用 Laravel 中间件后的性能问题。其他问题一般是关于框架的。 【参考方案1】:

使用 Lumen 的性能会更快。除非您需要执行一些只有 Laravel / Laravel 软件包才能处理的非常复杂的操作,否则请使用 Lumen。

此外,如果您不打算将 Lumen 或 Laravel 的许多功能用于将接收大量请求的特定端点,只需将该路由指向 nginx 中的另一个 php 文件,因为加载没有意义如果不需要,所有 Laravel 或 Lumen 的组件。

祝你好运!

【讨论】:

谢谢。但我的问题特别是关于 Laravel 5.2 可以禁用 API 中间件的方式。之后是否仍然存在巨大的性能问题?【参考方案2】:

有一些 PHP 框架的基准。很难以一种好的方式执行和阅读基准测试,但它们仍然应该能够暗示它们之间的差异。这似乎是一个很好的来源:https://github.com/kenjis/php-framework-benchmark。 Lumen 每秒有 412.36 个请求,Laravel 每秒有 91.59 个请求。如果您的 API 有很多请求,您可能应该使用 Lumen(或者一些更快的框架)。

如果可以的话,你也应该使用 PHP7,因为与 PHP5 相比,性能提升是巨大的。您可以显着减少内存负载和响应时间,例如查看this benchmark for Symfony。

禁用中间件以提高性能不是问题。 Laravel 中有different ways to register middleware。删除 HTTP 内核和路由中默认提供的所有中间件是一项小任务。然而,性能比中间件要多得多。 Laravel 会引导许多你不需要的组件,这就是 Lumen 最初被创建的原因。我没有关于中间件如何具体影响性能的基准,但我认为它不是主要的性能下降因素。

【讨论】:

谢谢。但我的问题特别是关于 Laravel 5.2 可以禁用 API 中间件的方式。之后是否仍然存在巨大的性能问题?

以上是关于Laravel 5.2 API 与 Lumen 相比如何? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

使用 Laravel/Lumen 5.2 和 apache 2.4

Laravel Lumen 5.2 Cors 中间件不工作

如何在 LUMEN 5.2 中激活会话

Angular IO 与 Laravel Lumen PHP API CORS 问题

Laravel 和 Lumen ACL 与共享代码库

为速度而生的LARAVEL框架LUMEN——安装与部署