dd/evolutioncms-libraries-ddinstaller
Composer 安装命令:
composer require dd/evolutioncms-libraries-ddinstaller
包简介
The library for install and update snippets, plugins and libraries.
关键字:
README 文档
README
The library for installing and updating snippets, plugins, and libraries from GitHub and GitLab repositories.
How it works
Terms
- “Site” — your site.
- “Resource” — snippet, plugin or library that you want to install or update.
Algorithm
- First, the library downloads the repository archive of Resource from GitHub or GitLab using API and temporary saves it in
assets/cache/ddInstaller/. - Then it decides whether to install / update Resource or not.
To do this it looks at thecomposer.jsonfile from the archive and compares withcomposer.jsonof Resource on your Site:- Resource will be installed or updated if:
composer.jsonin the archive:- Is exist.
- And not empty.
- And contains the valid
versionfield.
composer.jsonon Site:- Is not exist.
- Or empty.
- Or doesn't contain the
versionfield. - Or the
versionfield is invalid.
versionin the archive >versionon Site.
- Otherwise, Resource will not be installed.
- Resource will be installed or updated if:
- To avoid accumulation of trash files, the library removes the existing Resource folder before installation and creates it again (e. g.
assets/snippets/ddGetDate/). - If Resource is a snippet or plugin, the library tries to find its DB file (e. g.
ddGetDate_snippet.php) and installs / upates it to DB. - Finally, the library copies remaining files and subfolders to the Resource folder.
Requires
- PHP >= 7.4
- (MODX)EvolutionCMS >= 1.1
- (MODX)EvolutionCMS.libraries.ddTools >= 0.63
- (MODX)EvolutionCMS.snippets.ddMakeHttpRequest >= 2.4
Installation
Elements → Manage Files:
- Create a new folder
assets/libs/ddInstaller/. - Extract the archive to the folder.
Parameters description
\DDInstaller::install($params)
Installs or updates needed snippet, plugin, or library.
-
$params- Description: Parameters, the pass-by-name style is used.
- Valid values:
arrayAssociativeobjectstringJsonObject— as JSONstringHjsonObject— as HJSONstringQueryFormatted— as Query string
- Required
-
$params->url- Description: Resource GitHub or GitLab URL.
- Repository root URL only — without
/-/tree/...,/-/blob/...and other path suffixes. - E. g.
'https://github.com/DivanDesign/EvolutionCMS.snippets.ddGetDate' - E. g.
'https://gitlab.com/DivanDesign/SomeGroup/EvolutionCMS.snippets.ddGetDate'
- Repository root URL only — without
- Valid values:
stringUrl - Required
- Description: Resource GitHub or GitLab URL.
-
$params->revision- Description: The branch name, tag name, or commit hash to retrieve.
- If you specify anything other than
'master'/'main'or any version tag, the distributive will be installed regardless of thecomposer.jsonversion. This is useful for installing developer versions.
- If you specify anything other than
- Valid values:
string - Default value:
'master'
- Description: The branch name, tag name, or commit hash to retrieve.
-
$params->type- Description: Resource type.
- The parameter is case insensitive.
- If
$params->urlcontain the following words, you can avoid this parameter and the method will detect type automatically:'snippet','snippets'—'snippet''plugin','plugins'—'plugin''library','libraries'—'library'
- Valid values:
'snippet''plugin''library'- any empty value — will be auto detected from
$params->url
- Default value: —
- Description: Resource type.
-
$params->token- Description: Access token for private repositories.
- GitHub: Personal Access Token (classic:
reposcope, fine-grained:Contents: Read-only). - GitLab: Personal Access Token with
read_apiscope (archive API does not acceptread_repository, see gitlab#28324).
- GitHub: Personal Access Token (classic:
- Valid values:
string - Default value: —
- Description: Access token for private repositories.
Returns
$result- Description: Installation status.
- Valid values:
true— if the resource is installed or updated successfullyfalse— if something went wrong or the resource on Site is already up to date
Examples
GitHub: Install or update the ddGetDate snippet
Just run the following PHP code in your sources or Console:
// 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', ]);
- If
ddGetDateis not exist on your Site, the library will just install it. - If
ddGetDateis already exist on your Site, the library will check it version and update it if needed.
GitLab: Install or update
// Include (MODX)EvolutionCMS.libraries.ddInstaller require_once( $modx->getConfig('base_path') . 'assets/libs/ddInstaller/require.php' ); // Install from gitlab.com \DDInstaller::install([ // This is not a valid URL, just an example 'url' => 'https://gitlab.com/DivanDesign/SomeGroup/EvolutionCMS.snippets.ddGetDate', ]);
Private repository
// Include (MODX)EvolutionCMS.libraries.ddInstaller require_once( $modx->getConfig('base_path') . 'assets/libs/ddInstaller/require.php' ); // GitHub \DDInstaller::install([ 'url' => 'https://github.com/org/EvolutionCMS.snippets.ddGetDate', // Your GitHub Personal Access Token 'token' => 'ghp_xxxxxxxx', ]); // GitLab \DDInstaller::install([ 'url' => 'https://gitlab.com/group/EvolutionCMS.snippets.ddGetDate', // Your GitLab Personal Access Token 'token' => 'glpat-xxxxxxxx', ]);
Links
dd/evolutioncms-libraries-ddinstaller 适用场景与选型建议
dd/evolutioncms-libraries-ddinstaller 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 2 次下载、GitHub Stars 达 0, 最近一次更新时间为 2021 年 04 月 13 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「installer」 「updater」 「modx」 「MODX Evo」 「evo」 「modx evolution」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 dd/evolutioncms-libraries-ddinstaller 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 dd/evolutioncms-libraries-ddinstaller 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 dd/evolutioncms-libraries-ddinstaller 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Installs Aura packages to the Aura system "package" directory.
Migration generator for Yii 2.
Install WordPress must-use plugins with Composer
A simple class to integrate with Git Updater for standalone plugin/theme updates.
Arikam CMS installers
统计信息
- 总下载量: 2
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 13
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: Unknown
- 更新时间: 2021-04-13