mcpField
H
hyva-cms-components-dump

hyva-cms-components-dump

github.com/hyva-themes开发85747 次安装13 周前更新
代码仓库

关于 hyva-cms-components-dump

用于列出 Magento 2 项目中 Hyvä CMS 组件的技能,会合并已启用模块中的定义。它优先调用 Magento CLI,以反映项目中的启用状态、插件和覆盖情况。

主要功能

  1. 01列出启用的 CMS 组件
  2. 02列出已禁用的组件
  3. 03合并多个模块的组件定义
  4. 04旧版环境可使用脚本回退
  5. 05输出 JSON 组件定义

适用场景

  1. 01检查 CMS 编辑器可用组件
  2. 02创建组件后验证注册结果
  3. 03排查模块间组件名称冲突
  4. 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 对象。

回退脚本的工作方式
  1. 读取模块配置,从 app/etc/config.php 获取模块的有序列表
  2. 筛选活动模块——仅包含值为 1 的模块(跳过已禁用的模块)
  3. 查找 components.json 文件,位置如下:
    • app/code/{Vendor}/{Module}/etc/hyva_cms/components.json
    • vendor/{vendor-name}/{package-name}/*/etc/hyva_cms/components.json
  4. 将路径映射到模块名称,方法是读取每个模块的 etc/module.xml
  5. 合并 JSON 对象,顺序与 config.php 中声明的模块加载顺序一致
  6. 输出结果为格式化的 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 编辑器中有哪些组件可用
  • 创建新组件后验证组件注册情况
  • 检查不同模块之间是否存在组件名称冲突
  • 导出组件定义以用于文档编写

评论

支持 Markdown