首页 文章

Lumen与Laravel之间的异同

提问于
浏览
160

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

5 回答

  • 12

    Lumen不是为取代Laravel而设计的,而是为微服务和API设计的更专业(和精简)框架 . 它消除了诸如HTTP会话和cookie之类的API的不必要功能,并且还限制了配置选项的数量 . Out-of-the-box, Lumen sacrified the flexibility of Laravel for speed.

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

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


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

  • 187

    更新(5.2)

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

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


    原始答案(<= 5.1)

    Lumen is all about speed . 它比Laravel更快,每秒可处理更多请求 .

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

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

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

    // $app->withFacades();
    

    Dotenv环境文件和Eloquent也是如此 .

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

    除此之外,几乎所有东西都与Laravel相同 .

    Good reads on Lumen

  • 0

    Lumen微框架是Laravel全栈框架的轻量级版本 . Lumen使用Laravel语法和组件,可以轻松地“升级”到Laravel .

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

  • 34

    Why Lumen ?

    Lumen是构建基于Laravel的微服务和快速API的完美解决方案 . 事实上,它是最快的微框架之一 . 编写令人惊叹的快速服务来支持Laravel应用程序从未如此简单 . 文件

    Lumen是一个构建API的框架,它基本上可以为您的请求提供JSON响应 . 而已 .

    These kinds of applications are known as web services in general .

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

    Laravel框架的某些组件与其他软件包交换以支持性能 . check them here

    Example scenarios where we can consider Lumen

    • 您可能希望通过API向其他开发人员开放应用程序的某些功能

    • 您的应用程序需要同时支持Web和移动应用程序,然后将数据存储在包含Lumen API的数据库中是完美的 .

    • 当您将可扩展性视为重要点时,您可能需要流明

  • 2

    引自Matt Stauffer

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

    你可以阅读更多here

相关问题