如何选择 Laravel 框架版本

教程 Summer ⋅ 于 1年前 ⋅ 最后回复由 MRWang 4天前 ⋅ 11676 阅读

说明

很久以前在一个话题里面聊到的观点,很多同学在 Laravel 版本选择时候比较混淆,这里说下我的看法。

对 Laravel 框架发布周期不熟悉的同学请参阅 - Laravel 的发布路线图

什么是 LTS

长期支持 (英语:Long-term support,缩写:LTS)是一种软件的产品生命周期政策,特别是开源软件,它增加了软件开发过程及软件版本周期的可靠度。长期支持延长了软件维护的周期;它也改变了软件更新(补丁)的类型及频率以降低风险、费用及软件部署的中断时间,同时提升了软件的可靠性。但这并不必然包含技术支持。

在长期支持周期的开始,软件设计师会将软件特性冻结:他们制作补丁来修复程序错误及计算机安全隐患,但不会加入新的,可能会造成软件破坏的功能。软件维护者可能会单独发布补丁,或是将其置于维护版本、小数点版本或是服务包中发布。支持周期结束后,其称之为产品的生命周期结束。

“长期支持”这个术语通常是保留给特殊的软件版本,其他版本会有更短的生命周期。通常来说,长期支持版本至少会被维护两年。
From 维基百科

LTS 解决的问题

终于可以不用被框架的迭代推着走了,框架的更新换代对一个健康的生态系统来说是很必要的,我也认为程序员应该跟上技术的趋势,这对保持个人竞争力很重要。

但是作为一个庞大的商业项目的基础框架,一年一次的大版本更新真的是很痛苦的事情,当版本换代时,你会有两个选择:

  1. 更新框架为最新;
  2. 沿用老的框架。

如果你选择「1」更新,你会浪费无数个深夜进行代码迁移和测试,没有写自动化测试脚本的话更惨。

并且在这个过程中,你没有产出新东西,没有多写一行业务逻辑代码,对你自己来说这是在浪费生命,对于企业来说,这是在浪费时间、浪费金钱,最可怕的,浪费机会。

如果你选择不更新呢,对不起,你放弃了很多能极大提高你开发效率的「扩展包」(如果你是扩展包作者,很多时候,你也不会考虑去兼容淘汰掉的版本),过不了多久,官方会宣布对你的过气的基础框架停止维护,包括安全的 FIX。

file

Laravel LTS 长期支持版的出现就是为了解决这个问题的,Laravel LTS 的支持窗口是:

两年的 Bug 修复,三年的安全更新支持。

对应一般发行版的:

提供六个月的 Bug 修复支持,一年的安全修复支持。

如何选择?

从产品生命周期上去考虑:

  • 如果是商业项目的话,要走稳定路线,建议选择 LTS 长期支持版,可以避免掉入「更新大黑洞」。
  • 如果是个人项目的话,要走激进路线,推荐使用最新版的 Laravel,主要有两个理由:
    1. 跟上技术的趋势,对保持个人竞争力很重要,如果你不想被时代淘汰的话;
    2. 知道新框架的技术决策,即使你在开发 5.1 的应用也是非常有帮助,例如这个 路由分割 的讨论,Laravel 5.3 里已经有非常合理的解决方案,完全可以直接采用,但是如果你不知道 5.3 ,那你估计就会发明自己的 车轮

结语

Laravel LTS is awesome :metal:

summer


:book: Laravel 书籍:

本帖已被设为精华帖!
本帖由 Summer 于 1年前 加精
回复数量: 9
  • Destiny UI 精美、质量超高的技术博客 https://aabvip.com/
    1年前

    开始还以为LTS版本没啥用, 看了这篇文章, 受益匪浅

  • overtrue MOD https://github.com/overtrue
    1年前

    @Summer 赞! 对于新手很多容易陷入一个误区就是用低版本会不好,实际上还是要分场景来决定的。:100:

  • tonyboy
    1年前

    两条腿走路,Laravel 设计很合理

  • lucifergit
    1年前

    。。。。弄反了,symfony才是第一个支持LTS的php框架。laravel有lts版本就是应为symfony lts版本的发布。

  • cmzz
    1年前

    完了, 几个项目没选lts, 会不会死

  • Summer MOD A Life-long learner.
    1年前

    @lucifergit 确实如你所说,感谢指出

    The last Symfony LTS release was Symfony 2.3 in June of 2013. Two years ago Laravel was not nearly the size it is today. It wasn’t really clear that Laravel would become as widely adopted as it has, thus the need for an LTS release wasn’t as obvious. It is now used by many more very large corporations.

    Since Symfony 2.7 will be the next LTS release in May / June of this year, this is the first real opportunity to get on board with LTS releases in a few years, since we would not want do an LTS release without the underlying HttpFoundation component also having the same LTS support.

    from : https://laravel-news.com/2015/05/laravel-announces-v5-1-will-be-lts/

  • 江边望海 久在江边站,必有望海心!
    1年前

    不仅我们在使用上应该这样,今后自己开发软件的时候,也应该有生命周期的概念。真棒:+1:

  • Alex89
    1年前

    经验老道

  • MRWang
    1年前

    LTS 确实让生态圈更加成熟尤其是负责维护扩展的作者终于不用几个月更新一次扩展包了

暂无评论~~
  • 请注意单词拼写,以及中英文排版,参考此页
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
  • 支持表情,使用方法请见 Emoji 自动补全来咯,可用的 Emoji 请见 :metal: :point_right: Emoji 列表 :star: :sparkles:
  • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif
  • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
  请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!
Ctrl+Enter