适配 Laravel 多版本的开源项目版本号规划

在发布一个开源项目时,版本号是很重要的一个细节,它可以帮助用户了解项目的更新情况。

版本号一般由数字和字母组成,常见的版本号格式为 主版本号。次版本号。修订版本号,如 1.0.0。

  • 主版本号(major)表示大版本更新,通常是在破坏向后兼容性的情况下才会升级。
  • 次版本号(minor)表示小版本更新,通常是在添加新功能或修复小错误的情况下升级。
  • 修订版本号(patch)表示修订版本,通常是修补某个版本。

如果我们的项目是依赖于多个不同的 Laravel 版本,同时在不同版本需要做一些兼容处理,这时候就需要获取 Laravel 的版本号。

在 Laravel 框架中,可以使用 App::version () 函数来获取当前框架版本号。

$version = App::version();

在开源项目中处理时,可以通过如下判断来进行版本的判断,比如要判断大于 6.0.0 的 Laravel 框架

if( version_compare( $version, '6.0.0' ) ) {
   // ...
}

如果需要获取框架的主版本号(例如 5),可以使用 explode () 函数将版本号拆分为数组,然后获取数组的第一个元素即可。

例如,在 Laravel 框架中,可以使用 App::version () 函数获取当前框架版本号,然后使用 explode () 函数拆分版本号:

$version = App::version(); 
$parts = explode('.', $version); 
$major_version = $parts[0]; 

在上面的代码中,变量 $major_version 就是框架的主版本号。

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 3

version_compare 返回值是 1,0,-1,文章中,if( version_compare( $version, '6.0.0' ) 这里版本号大于和小于 6.0.0 的时候都会进入,只有等于 6.0.0 时才不会进入

1周前 评论
// 比如要判断大于 6.0.0 的 Laravel 框架
if(version_compare($version, '6.0.0', '>') 

如楼上所说,应该使用第三个参数,指定两个版本之间的比较关系,这样 version_compare 方法才会返回bool类型。

5天前 评论
sunxyw

偷懒的同学可以直接用数组形式访问字符串来获取版本号,例如 app()::VERSION[0] >= 8,但注意这样不兼容即将到来的 Laravel 10。

5天前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!