适配 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 协议》,转载必须注明作者和本文链接
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 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类型。

1年前 评论
sunxyw

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

1年前 评论

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