dd / evolutioncms-libraries-ddinstaller
此包的最新版本(0.2.0)没有可用的许可证信息。
用于安装和更新代码片段、插件和库的库。
0.2.0
2024-09-13 15:00 UTC
Requires
- php: >=7.4.0
- dd/evolutioncms-libraries-ddtools: >=0.62.0
- dd/evolutioncms-snippets-ddmakehttprequest: >=2.3.0
This package is auto-updated.
Last update: 2024-09-13 15:02:58 UTC
README
从GitHub存储库安装和更新代码片段、插件和库的库。
工作原理
条款
- “站点” —— 您的网站。
- “资源” —— 您想安装或更新的代码片段、插件或库。
算法
- 首先,库使用API从GitHub下载资源存储库的存档,并将其临时保存在
assets/cache/ddInstaller/
。 - 然后它决定是否安装/更新资源。
为此,它查看存档中的composer.json
文件,并将其与您的站点上资源的composer.json
进行比较- 如果以下条件之一成立,则将安装或更新资源
- 存档中的
composer.json
- 存在。
- 并且不为空。
- 并且包含有效的
version
字段。
- 站点上的
composer.json
- 不存在。
- 或者为空。
- 或者不包含
version
字段。 - 或者
version
字段无效。
- 存档中的
version
> 站点上的version
。
- 存档中的
- 否则,将不会安装资源。
- 如果以下条件之一成立,则将安装或更新资源
- 为了避免垃圾文件积累,库在安装之前删除现有的资源文件夹,并重新创建它(例如
assets/snippets/ddGetDate/
)。 - 如果资源是代码片段或插件,库将尝试找到其数据库文件(例如
ddGetDate_snippet.php
)并将其安装/更新到数据库中。 - 最后,库将剩余的文件和子文件夹复制到资源文件夹中。
需求
- PHP >= 7.4
- (MODX)EvolutionCMS >= 1.1
- (MODX)EvolutionCMS.libraries.ddTools >= 0.62
- (MODX)EvolutionCMS.snippets.ddMakeHttpRequest >= 2.3
安装
元素 → 管理文件
- 创建一个新的文件夹
assets/libs/ddInstaller/
。 - 将存档提取到该文件夹中。
参数描述
\DDInstaller::install($params)
安装或更新所需的代码片段、插件或库。
-
$params
-
$params->url
- 描述:资源GitHub URL。
- 例如
'https://github.com/DivanDesign/EvolutionCMS.snippets.ddGetDate'
- 例如
- 有效值:
stringUrl
- 必需
- 描述:资源GitHub URL。
-
$params->type
- 描述:资源类型。
- 参数不区分大小写。
- 如果
$params->url
包含以下单词,则可以避免此参数,并且方法将自动检测类型'snippet'
、'snippets'
——'snippet'
'plugin'
、'plugins'
——'plugin'
'library'
、'libraries'
——'library'
- 有效值
'snippet'
'plugin'
'library'
- 任何空值 —— 将从
$params->url
中自动检测
- 默认值: ——
- 描述:资源类型。
返回
$result
- 描述:安装状态。
- 有效值
true
—— 如果资源已成功安装或更新false
—— 如果出现错误或站点上的资源已经是最新的
示例
安装或更新 ddGetDate
代码片段
只需在您的源代码或 控制台 中运行以下 PHP 代码
// Include (MODX)EvolutionCMS.libraries.ddInstaller require_once( $modx->getConfig('base_path') . 'assets/libs/ddInstaller/require.php' ); // Install (MODX)EvolutionCMS.snippets.ddGetDate \DDInstaller::install([ 'url' => 'https://github.com/DivanDesign/EvolutionCMS.snippets.ddGetDate', ]);
- 如果您的网站上不存在
ddGetDate
,库将直接安装它。 - 如果您的网站上已存在
ddGetDate
,库将检查其版本并在需要时进行更新。