dd/evolutioncms-libraries-ddinstaller

此包的最新版本(0.2.0)没有可用的许可证信息。

用于安装和更新代码片段、插件和库的库。

This package is auto-updated.

Last update: 2024-09-13 15:02:58 UTC


README

从GitHub存储库安装和更新代码片段、插件和库的库。

工作原理

条款

  • “站点” —— 您的网站。
  • “资源” —— 您想安装或更新的代码片段、插件或库。

算法

  1. 首先,库使用API从GitHub下载资源存储库的存档,并将其临时保存在 assets/cache/ddInstaller/
  2. 然后它决定是否安装/更新资源。
    为此,它查看存档中的 composer.json 文件,并将其与您的站点上资源的 composer.json 进行比较
    • 如果以下条件之一成立,则将安装或更新资源
      1. 存档中的 composer.json
        • 存在。
        • 并且不为空。
        • 并且包含有效的 version 字段。
      2. 站点上的 composer.json
        • 不存在。
        • 或者为空。
        • 或者不包含 version 字段。
        • 或者 version 字段无效。
      3. 存档中的 version > 站点上的 version
    • 否则,将不会安装资源。
  3. 为了避免垃圾文件积累,库在安装之前删除现有的资源文件夹,并重新创建它(例如 assets/snippets/ddGetDate/)。
  4. 如果资源是代码片段或插件,库将尝试找到其数据库文件(例如 ddGetDate_snippet.php)并将其安装/更新到数据库中。
  5. 最后,库将剩余的文件和子文件夹复制到资源文件夹中。

需求

安装

元素 → 管理文件

  1. 创建一个新的文件夹 assets/libs/ddInstaller/
  2. 将存档提取到该文件夹中。

参数描述

\DDInstaller::install($params)

安装或更新所需的代码片段、插件或库。

  • $params

    • 描述:参数,使用按名称传递的方式。
    • 有效值
      • arrayAssociative
      • object
      • stringJsonObject —— 作为 JSON
      • stringHjsonObject —— 作为 HJSON
      • stringQueryFormatted —— 作为 查询字符串
    • 必需
  • $params->url

    • 描述:资源GitHub URL。
      • 例如 'https://github.com/DivanDesign/EvolutionCMS.snippets.ddGetDate'
    • 有效值:stringUrl
    • 必需
  • $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,库将检查其版本并在需要时进行更新。

链接