koderzi / php-github-updater
PHP GitHub 发布更新器
README
GitHub 发布更新器是一个PHP类,它允许您从最新的GitHub仓库发布更新您的项目。该类易于使用且效率高,可以保持您的项目与最新版本同步。
准备
在开始使用此类之前,您需要在GitHub上生成一个个人访问令牌。请按照以下步骤操作
- 访问 https://github.com/settings/tokens/new
- 选择仓库并启用对内容和元数据的只读访问。
- 点击“生成令牌”并复制令牌。
安装
要使用Composer使用此类,请按照以下步骤操作
- 在项目根目录中打开终端或命令提示符。
- 运行以下命令以在项目中初始化composer.json文件
composer init
- 按照提示填写项目的详细信息(例如包名、描述、作者等)。
- 运行以下命令安装koderzi/php-github-updater包
composer require koderzi/php-github-updater
这将下载包及其依赖项并将它们添加到您的vendor目录中。
- 在项目中包含vendor/autoload.php文件以自动加载包提供的类
require_once "vendor/autoload.php";
如果您正在使用框架或其他自动加载机制,可能需要手动包含此文件。
要直接下载使用此类,请按照以下步骤操作
- 从仓库的src目录检索Updater.php文件。
- 将Updater.php文件放入您的项目目录中。
- 在项目中包含文件以加载类。
使用
要初始化更新器类并开始更新过程,请按照以下步骤操作
- 使用以下参数实例化类
use KoderZi\PhpGitHubUpdater\Updater;
$update = new Updater(
string $username,
string $repository,
string $token,
string $version,
string|null $admin,
string|null $mailer,
array|null $sourceExclusions = ['path' => [], 'filename' => []],
array|null $releaseExclusions = ['path' => [], 'filename' => []],
bool $clear = true,
string $dir = ""
bool $autoUpdate = true
);
$username
您的GitHub用户名。
$repository
您的GitHub仓库名称。
$token
您之前生成的个人访问令牌。
$version
您项目的当前版本号。
$admin
(可选)在更新失败时将收到电子邮件的管理员电子邮件地址。
$mailer
(可选)将发送电子邮件的电子邮件地址。
$sourceExclusions
(可选)要从更新中排除的源目录或文件数组。
$releaseExclusions
(可选)要从更新中排除的发布目录或文件数组。
$clear
(可选)如果设置为true,在更新完成后清除下载的文件。
$dir
(可选)设置更新的目录。默认为当前工作目录。
$autoUpdate
(可选)是否自动更新项目。默认为true。
排除数组的键
$sourceExclusions = [
'path' => an array of source excluded paths,
'filename' => an array of source excluded filenames
]
$releaseExclusions = [
'path' => an array of release excluded paths,
'filename' => an array of release excluded filenames
]
要检查发布版本,请使用以下代码
$update->release();
如果可用新发布,类将自动更新您的项目。要手动更新,将$autoUpdate设置为false并使用以下代码开始更新
$update->update();
要检查更新状态,请使用以下代码
$update->status();
更新状态可以有以下整数值
Updater::INIT
(100):表示更新类已初始化。
Updater::UPDATED
(200):表示更新成功。
Updater::LATEST
(204):表示项目已经是最新版本。
Updater::ERROR
(500): 表示更新失败。
Updater::BUSY
(504): 表示更新过程正在进行中。
结论
GitHub 发布更新器是一种简单高效的方法,用于保持您的项目与 GitHub 上的最新发布保持同步。它易于使用,可以节省您大量时间和精力。如果您有任何疑问或问题,请随时创建一个问题。