关于 hyva-cms-components-dump
用于列出 Magento 2 项目中 Hyvä CMS 组件的技能,会合并已启用模块中的定义。它优先调用 Magento CLI,以反映项目中的启用状态、插件和覆盖情况。
主要功能
- 01列出启用的 CMS 组件
- 02列出已禁用的组件
- 03合并多个模块的组件定义
- 04旧版环境可使用脚本回退
- 05输出 JSON 组件定义
适用场景
- 01检查 CMS 编辑器可用组件
- 02创建组件后验证注册结果
- 03排查模块间组件名称冲突
- 04导出组件定义用于文档
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ hyva-themes/ hyva-ai-tools --skill hyva-cms-components-dump安装后在 Claude Code 中输入/hyva-cms-components-dump确认已加载。
附带文件scripts/dump_cms_components.php
详细介绍
Hyvä CMS 组件转储
列出 Magento 2 项目中可用的 Hyvä CMS 组件,并合并所有已启用模块中的组件。
命令执行: 使用 hyva-exec-shell-cmd 技能检测环境并确定命令包装器。请在 Magento 项目根目录下运行以下所有命令。
步骤 1:优先使用 bin/magento CLI 命令
新版 Hyvä CMS 提供控制台命令,可报告实时且与项目一致的组件集(反映启用状态、插件和覆盖项)。请优先使用这些命令。
检查一次可用性,然后使用存在的命令:
# via the detected wrapper, e.g. warden env exec -T php-fpm bash -c "bin/magento list hyva:cms"
bin/magento list hyva:cms
bin/magento hyva:cms:describe-components— 描述已启用的 CMS 组件bin/magento hyva:cms:list-disabled-components— 列出已禁用的 CMS 组件
这些命令通过标准的 bin/magento 包装器运行(位于项目的开发容器中);不涉及捆绑脚本,也不使用主机上的 PHP。
步骤 2:回退方案 — 捆绑的转储脚本
如果 hyva:cms:* 命令不可用(旧版 Hyvä CMS),则回退到捆绑的 scripts/dump_cms_components.php。该脚本会 require app/etc/config.php,因此需要 PHP 解释器——请按照 hyva-exec-shell-cmd 技能(“在环境内部运行捆绑的技能脚本”)中说明的模式运行:通过 stdin 将脚本传入解释器,例如:
# via the detected wrapper, working directory = project root
cat <skill_path>/scripts/dump_cms_components.php | warden env exec -T php-fpm bash -c "php /dev/stdin"
并捕获 stdout。该脚本通过 getcwd() 查找 Magento 根目录,因此不需要临时文件、挂载或清理。
输出格式: 一个包含所有合并后的 CMS 组件定义的 JSON 对象。
回退脚本的工作方式
- 读取模块配置,从
app/etc/config.php获取模块的有序列表 - 筛选活动模块——仅包含值为
1的模块(跳过已禁用的模块) - 查找 components.json 文件,位置如下:
app/code/{Vendor}/{Module}/etc/hyva_cms/components.jsonvendor/{vendor-name}/{package-name}/*/etc/hyva_cms/components.json
- 将路径映射到模块名称,方法是读取每个模块的
etc/module.xml - 合并 JSON 对象,顺序与
config.php中声明的模块加载顺序一致 - 输出结果为格式化的 JSON
模块加载顺序
组件会按照模块在 app/etc/config.php 中出现的确切顺序进行合并。后加载的模块可以使用相同的组件键覆盖先加载模块中的组件。
输出示例
{
"text_block": {
"label": "Text Block",
"category": "Content",
"template": "Hyva_CmsBase::elements/text-block.phtml",
...
},
"feature_card": {
"label": "Feature Card",
"category": "Elements",
"template": "Custom_Module::elements/feature-card.phtml",
...
}
}
与其他技能集成
此技能可用于:
- 调试 CMS 编辑器中有哪些组件可用
- 创建新组件后验证组件注册情况
- 检查不同模块之间是否存在组件名称冲突
- 导出组件定义以用于文档编写