Lumen与Laravel之间的异同

时间:2015-04-15 10:35:57

标签: php laravel lumen

我阅读了文档,看来Lumen是Laravel,功能较少。我肯定错过了什么。 我正在寻找Laravel和Lumen的组件和功能的比较表。有谁知道这些差异?

6 个答案:

答案 0 :(得分:192)

更新(5.2)

使用最新版本的Lumen(5.2),Microframework专注于无状态API documentation州:

  

Lumen 5.2代表着减轻Lumen的转变,专注于提供无状态的JSON API。 因此,框架不再包含会话和视图。如果您需要访问这些功能,则应使用完整的Laravel框架。


原始答案(< = 5.1)

流明就速度而言。它比Laravel更快,每秒可处理更多请求。

Laravel是一个将许多组件粘合在一起的框架(第三方和Laravels自己的组件)。现在,Lumen使用了许多相同的组件,但将引导过程降至最低。你可以说它是一种“不同的胶水”,组件(因此很多功能)大多是相同的。

通过在配置和更改默认启动过程方面消除框架的一些灵活性来实现性能改进。

除此之外,默认情况下会禁用更多功能,必须先激活它们才能使用它们。例如:外墙(如DB::table()
您首先需要在bootstrap/app.php中取消注释该行以启用它们:

// $app->withFacades();

Dotenv环境文件和Eloquent也一样。

对于路由,Lumen使用nikic/FastRoute而不是symfonys路由器,因为它执行得更好,并为微框架提供了另一个大的推动力。

除此之外,几乎所有事情都与Laravel相同。

关于流明的好读物

答案 1 :(得分:38)

Lumen并非旨在取代Laravel,而是为微服务和API设计的更专业(和精简)框架。它消除了诸如HTTP会话和cookie之类的API的不必要功能,并且还限制了配置选项的数量。 开箱即用,Lumen为了速度而牺牲了Laravel的灵活性。

但是,您可以将Laravel组件添加到Lumen中以扩展它,因此可以不仅仅用于微服务和API。但是,如果您的目标是将Lumen扩展为网站,那么您最好使用Laravel。

他们也有不同的用例。 Lumen和Laravel打算一起工作。对于API和服务经常被调用,使用流明。对于面向用户的应用程序,请使用Laravel。


这个答案取自我写的blog post,解释了Lumen和Laravel之间的区别。

答案 2 :(得分:13)

来自Matt Stauffer的报价

  

Lumen与Laravel具有相同的基础,以及许多相同的组件。但是Lumen是为微服务而构建的,而不是面向面向用户的应用程序(尽管它可以用于任何东西。)因此,像Bootstrap和Elixir这样的前端细节以及身份验证引导程序和会话都不会出现在框,以及扩展和更改引导程序文件的灵活性较低。

您可以阅读更多here

答案 3 :(得分:4)

Lumen微框架是Laravel全栈框架的轻量级版本。流明使用Laravel语法和组件,可以升级'很容易到Laravel。

Lumen是一个更专业(和精简)的框架,专为微服务开发和API开发而设计。因此,不需要Laravel中的一些功能,例如HTTP会话,cookie和模板,并且Lumen将它们带走,保持必要的 - 路由,日志记录,缓存,队列,验证,错误处理和几个其他

答案 4 :(得分:0)

为什么要流明?

  

Lumen是构建基于Laravel的微服务和快速API的理想解决方案。实际上,它是现有最快的微框架之一。编写惊人的快速服务来支持您的Laravel应用程序从未如此简单。 Doc

Lumen是一个用于构建API的框架,该API实际上将为您的请求提供JSON响应。就是这样。

这些类型的应用程序通常被称为网络服务

从Lumen 5.2更新开始,它不支持laravel视图,会话等...,因此您必须升级到完整的laravel框架。

Laravel框架的某些组件与其他软件包交换了性能。 check them here

可以考虑流明的示例场景

  • 您可能想通过API向其他开发者开放应用程序的某些功能
  • 您的应用程序需要同时支持Web和移动应用程序,然后将数据存储在以Lumen API包装的数据库中将是完美的选择。
  • 当您将可扩展性作为重点时,您可能需要流明

答案 5 :(得分:-1)

laravel和lumen之间的主要区别是,laravel可以具有工匠命令,而lumen没有。