流明介绍

Lumen是一个由Laravel框架的作者Taylor Otwell开发的全新PHP微框架的品牌。 不过,请不要强调-流明并不能取代Laravel。 实际上,Lumen的想法是,它可以补充您现有或将来的Laravel应用程序。

Taylor Otwell在开发Lumen时考虑了一些非常特定的目的,即微服务和API。 简而言之,微服务是一个较小的,解耦的过程,可与较大的应用程序(例如,我们的Laravel应用程序)通信。

在本文中,我想介绍流明的不同之处,何时使用流明以及如何使用流明。 我还将说明如何使用Lumen应用程序并将其轻松迁移到全栈Laravel应用程序。 因为Lumen与Laravel几乎相同,所以不会有很多代码。 让我们开始吧。

那么有什么新消息?

这很可能是你们中许多人会问的第一个问题。 实际上,除了胶水以外,Lumen并不是真正的全部。 Lumen仍然使用构成Laravel框架的大多数Illuminate组件(仅缺少几个)。 将其视为精简的Laravel安装。

其目标是最大程度地提高性能,并获得这种性能提升,但已经做了几处更改。 其中最重要的是:

  1. 配置少。 许多流明已预先配置。 实际上,您会发现Lumen安装中没有config目录。 相反,您将利用.env文件来配置大多数应用程序。
  2. 不同的路由器。 这可能是最大的不同,也是它可以做到最快的原因。 流明没有像其老兄Laravel那样使用Symfony路由器。 相反,Lumen使用FastRoute ,这是Nikita Popov开发的轻量级路由实现。

这里有一些权衡。 FastRoute是一个非常快速的实现,但是它不像Symfony路由器那样具有丰富的功能。 如果要使用子域路由,则必须坚持使用使用Symfony路由器的Laravel安装。

另一个值得一提的折衷是,为了更好地控制某些组件的配置,您需要在vendor/laravel/lumen-framework目录中修改配置文件。 大部分配置都可以通过.env文件完成,但某些配置较少的事情则不能直接配置。

我现在应该切换到流明吗?

这里的答案将取决于,但可能并非如此。 如果您正在开发或已经在Laravel(4或5)上开发了应用程序,那么您可能不需要在此刻就切换到Lumen。 尽管Lumen能够开发功能完善的Web应用程序,但它更适合于较小的,解耦的服务和API。

那么我什么时候可以使用它?

我无法告诉您何时可以使用和不能使用可用的框架。 但是,我将对何时考虑在下一个项目中使用流明提出一些建议。

假设您正在构建大型网上商店应用程序。 因此,您可以继续安装Laravel并开始在整体应用程序上工作。 现在,这种方法没有任何问题,您可能会发现它对您来说很好用。 如果是这样,继续。 如果您发现您对复杂性不知所措,或者事情似乎有点失控,那么您可能希望将其分解为一些更小,更易于管理的部分。

您将使用Lumen为每个解耦的服务创建单独的应用程序。 对于我们的商店,我们可能会将帐单,电子邮件通知,运输和跟踪拆分为单独的应用程序。 这些应用程序中的每个应用程序都是一个独立的Lumen安装程序,每个应用程序仅执行特定的任务。

为了使我们的主应用程序能够与解耦的服务进行通信,我们将使用队列和Amazon SQS之类的服务。 我们可以使用队列轻松地将作业排队,每个服务将侦听其特定的作业并在排队时对其进行处理。 这种方法的好处在于,每个服务都可以彼此独立地扩展和部署。

您还可以使用Lumen构建API,您的主应用程序也可以在HTTP客户端(例如Guzzle)的帮助下使用该API。 这种解耦使您可以扩展和优化应用程序的业务方面,而不会干扰其余部分。

好的,我该如何使用?

到目前为止,您应该对使用Lumen是否适合您正确的方法有了个好主意。 安装Lumen就像安装Laravel一样简单:一个简单的composer create-project命令,或者您可以安装lumen命令来创建新项目。 我们将仅使用Composer进行全新安装。

composer create-project laravel/lumen LumenProject --prefer-dist

Composer将下拉所有依赖项。 您可以使用Artisan快速提供该应用程序以进行查看,也可以设置虚拟主机或Homestead站点。 无论哪种方式,一旦您找到流明安装的路径,您都会看到闪亮的启动页面,通知您流明很好。

所有配置都在.env文件中完成,因此您需要重命名.env.example文件或将其内容复制到新文件中。

您需要了解的其余引导程序位于bootstrap/app.php文件中。 如果使用上面提到的.env配置,那么您将要取消注释Dotenv::load(__DIR__.'/../');注释Dotenv::load(__DIR__.'/../'); 。 滚动浏览此文件,您会看到一些可能要取消注释的注释行。 其中包括外观,Eloquent,一些中间件以及其他服务提供商的注册。

现在,您已经获得了全新安装和配置的Lumen副本,准备构建惊人的东西。

但是等等,我现在需要Laravel!

您可能正在构建Lumen应用程序,并且一切都进行得非常顺利,直到有一天,当您意识到自己只需要完整的Laravel框架所提供的东西时,这一命运才得以实现。 不过,请不要强调,因为这是极其轻松的升级。 以下是要遵循的步骤:

  1. 安装新的Laravel 5副本。
  2. 在您的app目录中复制。 请注意,您可能需要L5 app目录中的某些内容,例如提供程序。
  3. 将整个配置复制到config目录中的相应文件。
  4. 跨任何自定义引导复制。
  5. 修正一些路线。 由于Lumen使用FastRoute,因此您可能需要调整一些路由,以使其与Symfony路由器兼容。

这应该是您需要复制的大部分内容,才能将Lumen应用程序迁移到Laravel。 当然,这两种方法都起作用,因此,如果您意识到不需要全栈框架提供的所有功能,则可以轻松地将Laravel应用程序迁移到Lumen。

结论

总结一下,我只想指出,我主张将Lumen主要用于分离的服务和API,这是它的预期用途。 这并不是说您不能在Lumen上构建整个应用程序,因为可以。 如果您选择这样做,那很好。 在石板上刻没有任何规则来告诉您项目可以使用和不使用的内容。 最终,决定权由您自己决定。 权衡您的选择,计划项目,确定所需条件,咨询团队,然后做出最终决定。

翻译自: https://code.tutsplus.com/articles/introduction-to-lumen--cms-23928

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值