一个用于存储、计算和更新您应用程序版本号和历史的包。

dev-main 2022-06-29 21:43 UTC

This package is auto-updated.

Last update: 2024-09-29 06:25:54 UTC


README

您可以使用Composer将此库添加到项目的本地依赖中。

composer require thomasfielding/version

这个包是什么?

此包旨在允许您在整个应用程序开发过程中记录版本更改。与其他包可能提供的相比,这是一个稍微更手动的过程,但这确实允许您在从单个代码库远程团队工作时,以更一致的方式记录主版本、次版本和补丁更新的系统。

安装后,它将在您的配置目录内生成一个配置文件 config/version.php。此文件包含一些设置,可修改此包的行为

  • git:一个布尔值,如果您在项目中使用git源代码控制,则为true;否则为false。这只会改变git分支是否存储在版本日志中。
  • initial:一个格式为1.13.4的字符串,默认为0.0.0,但您可以将其更改为修改应用程序的起始版本号,如果您将此包添加到现有产品中,而没有要转换的版本历史记录。
  • root:这是您想要存储版本日志的位置,默认为./version
  • template:这是一个可以添加的对象,用于添加额外的参数(自定义)到强制日志参数中;branch_iddescriptionidtimestamptype

所有日志都存储为json文件,您可以手动编辑它们,并将作为您的代码库的一部分存储。每个git分支(如果您的配置设置中启用了git)只能创建一个日志。

如何使用

此包的主要用途是获取当前版本号和格式化的补丁说明。可以通过以下方式扩展ThomasFielding\Version\Services\VersionService来访问这些

public function __construct(VersionService $versionService) {
	$this->versionService = $versionService;
}

或者如果您无法将依赖项注入到构造函数中

$this->versionService = new VersionService();

初始化后,您可以使用以下函数

  • $this->versionService->getVersionNumber():这将返回当前版本号(即1.13.4
  • $this->versionService->getPatchNotes():这将返回一个对象,您可以将它传递到前端。

命令

您可以使用3个不同的Artisan命令来生成、更新和检索应用程序的版本号。

  • php artisan version:current:此命令将返回应用程序的当前版本号(即1.13.4)。

  • php artisan version:log:此命令将在您的版本目录内创建一个新的日志json文件。文件名仅代表日志创建的时间,但不会影响运行顺序或应用程序的版本号,这是使用每个日志文件内的idtimestamp键来确定的。您可以向此命令传递一个参数和一个选项。

  • php artisan version:log major:这将创建一个主版本更新。通常用于史诗完成或添加大量更改,这些更改从根本上改变了应用程序的工作方式。

  • php artisan version:log minor:这将创建一个次版本更新。通常用于功能发布。

  • php artisan version:log patch:这将创建一个补丁版本更新。通常用于热修复和错误修复,如果没有提供参数,则为默认值。

  • php artisan version:log --description="您的日志信息在此处":创建日志后可以手动更新此信息,但这旨在模仿git提交消息的工作方式,并将显示为新版本号描述。

  • php artisan version:log:update:如果git设置为false,则将跳过所有功能。如果git启用并且当前分支存在日志,则将更新该日志的timestamp以反映当前时间戳。在创建拉取请求之前运行的好功能,以确保版本号更准确地反映发布顺序。

版本服务

此包的逻辑由名为 "版本服务" 的服务管理,可在命名空间 ThomasFielding\Version\Services\VersionService 下找到。作为此的一部分,提供了一些公共函数供您访问

  • getFileById:此函数允许您通过使用创建日志时生成的唯一id从特定版本日志中获取数据。这可以在每个日志创建的json文件中找到。需要一个参数,即string $id,这是要查找的id,如果没有找到,则返回null值。

  • getGitBranchId:一个更通用的函数,如果配置文件中设置了git: true,则可以获取git分支id。它可以抛出两个异常,即DuplicateLogExceptionUncommittedBranchException,这两个异常都会将它们的消息打印到终端。

  • getLogsByBranchId:根据您提供的git分支获取日志数据。这将基于git分支id获取,需要一个参数string $git,这可以从此服务中包含的getGitBranchId函数中获取。

  • getMajorVersionNumber:获取主版本号。接受一个参数?string $version,如果未设置,将获取应用程序的当前主版本,但也可以接受字符串majorminorpatch,取决于您想递增版本号的哪个元素。

  • getMinorVersionNumber:获取次要版本号。接受一个参数?string $version,如果未设置,将获取应用程序的当前次要版本,但也可以接受字符串majorminorpatch,取决于您想递增版本号的哪个元素。

  • getPatchVersionNumber:获取补丁版本号。接受一个参数?string $version,如果未设置,将获取应用程序的当前补丁版本,但也可以接受字符串majorminorpatch,取决于您想递增版本号的哪个元素。

  • getRoot:一个简单的函数,用于返回所有版本日志将存储的目录位置。

  • getVersionNumber:获取整个版本号作为字符串以显示(例如 1.13.4)。接受一个参数?string $version,如果未设置,将获取应用程序的当前版本,但也可以接受字符串majorminorpatch,取决于您想递增版本号的哪个元素。