如何选择 Laravel 框架版本

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

说明

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

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

什么是 LTS

首先你需要明白 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:

本文章首发在 Laravel China 社区

Practice makes perfect.

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

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

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

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

  • tonyboy
    1年前

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

  • lucifergit 1
    1年前

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

  • cmzz 1
    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 确实让生态圈更加成熟尤其是负责维护扩展的作者终于不用几个月更新一次扩展包了

暂无评论~~
您需要登陆以后才能留下评论!

Composer 中国全量镜像

Top 100 扩展包

Lumen 中文文档

Laravel 速查表

Laravel 中文文档

Laravel 项目开发规范

Laravel 开发环境部署

Elasticsearch-PHP 中文文档

Lumen 中文文档

GraphQL PHP 中文文档

社区文档撰写指南

TDD 构建 Laravel 论坛笔记

PHP PSR 标准规范

PHP 设计模式全集

Dingo API 中文文档