自动更新
本框架实现了扩展机制,所有代码(除了自己新增的代码,比如增删改查或其他任何文件),只要遵循了扩展机制,底层可以通过一行命令一键更新。
更新命令:
php think admin:update
这会将底层代码更新到最新版本,需要环境中安装git并能够直接调用。
二次分发更新
v2.0.104+
如果您直接使用本框架开发了项目,想用新版本的特性,直接使用前章所示命令即可。但如果您也打算做一个标准化的产品,本框架也提供了更新机制。
修改代码
修改文件:app\common\command\admin\Version.php
,填写自己的版本号:
<?php
declare(strict_types=1);
namespace app\common\command\admin;
use base\common\command\admin\VersionBase;
class Version extends VersionBase
{
public const PRODUCT_VERSION = '填写自己的版本号';
}
修改文件:app\admin\service\AdminUpdateService.php
,填写自己的git地址。
<?php
namespace app\admin\service;
use base\admin\service\AdminUpdateServiceBase;
class AdminUpdateService extends AdminUpdateServiceBase
{
public const PRODUCT_REPO = 'https://您自己的git地址.git';
}
版本号规则
对版本号有规则限制,需要符合version_compare
函数的规则,否则无法正确识别新版本、老版本。
函数官方文档:
https://www.php.net/manual/zh/function.version-compare.php
更新命令
修改完上面两个文件后,最初的命令不变,此时会更新您的代码,而不再是ulthon_admin的代码了。
php think admin:update
如果您作为产品研发者需要更新ulthon_admin的新版本怎么办呢?只需要增加参数--update-ulthon
即可。
php think admin:update --update-ulthon
这样就会把最新的ulthon_admin更新到本地。
更新提示
新建文件app\admin\service\adminUpdateData\tips.php
<?php
// 升级的注意事项
return [
[
'version' => 'v1.0.2',
'desc' => [
'发布新版本',
],
],
];
该文件是升级的注意事项,不需要每个版本都填写,只有当下游开发者更新后需注意提醒的才记录,比如:
- 手动引入新的依赖
- 更新依赖
- 破坏性更新
等等。
我不想通过公开的git仓库怎么办
目前只能通过git实现更新,暂时也没有实现多种更新渠道的机制。如果我们不希望通过公开的git发布更新,对此,我们可以搭建一个私有的git,然后给客户分配git账号,让他们先获得您私有git的权限,再更新,代码无需调整。
如何便捷的发布版本
前文提到,框架中标识的版本必须和实际的git标签一致,这本身时间很简单的事情,手动保持一致就可以了嘛,但我们仍然提供了一个命令,让您能够方便的发布版本。
编辑文件app\common\command\admin\Version.php
,
<?php
declare(strict_types=1);
namespace app\common\command\admin;
use base\common\command\admin\VersionBase;
class Version extends VersionBase
{
public const PRODUCT_VERSION = '填写自己的版本号';
public const COMMENT = [
'填写您自己的版本号',
'发布新版本',
];
}
最后运行命令:
php think admin:version --push-tag
就会把您提交的代码和tag推送到您的git仓库里。
原文标题:自动更新
原文文档:ulthon_admin
原文地址:https://doc.ulthon.com/read/augushong/ulthon_admin/670cec64691dc/zh-cn/2.x.html
原文平台:奥宏文档