前端开发
在 Magento 2 项目中列出/调试 Hyvä CMS…
需要查看、调试或导出 Magento 2 项目中所有已启用模块合并后的 Hyvä CMS 组件列表时使用。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 59/100 ×0.15
适用场景
在 Magento 2 项目中列出/调试特定
解决思路
- 使用 hyva-exec-shell-cmd 技能检测环境并确定命令包装器,所有命令都在 Magento 项目根目录下运行。
- 优先使用 bin/magento CLI 命令:先运行 bin/magento list hyva:cms 检查可用性,然后使用存在的命令。
- 使用 bin/magento hyva:cms:describe-components 描述已启用的 CMS 组件。
- 使用 bin/magento hyva:cms:list-disabled-components 列出已禁用的 CMS 组件。
- 这些命令通过标准的 bin/magento 包装器在项目开发容器中运行,无需捆绑脚本,也无需宿主机 PHP。
- 如果 hyva:cms:* 命令不可用(旧版 Hyvä CMS),回退到捆绑脚本 scripts/dump_cms_components.php。
- 该脚本 require 了 app/etc/config.php,因此需要 PHP 解释器;按 hyva-exec-shell-cmd 技能中「在环境内运行捆绑技能脚本」的模式,通过 stdin 将脚本流式传入解释器,例如:cat <skill_path>/scripts/dump_cms_components.php | warden env exec -T php-fpm bash -c "php /dev/stdin",并捕获 stdout。
- 脚本通过 getcwd() 定位 Magento 根目录,因此无需临时文件、挂载或清理。
- 输出格式为单个 JSON 对象,包含所有合并后的 CMS 组件定义。
- 回退脚本的工作流程:从 app/etc/config.php 读取模块配置,获取有序的模块列表。
- 过滤活跃模块:仅包含值为 1 的模块,跳过已禁用的模块。
- 在 app/code/{Vendor}/{Module}/etc/hyva_cms/components.json 和 vendor/{vendor-name}/{package-name}/*/etc/hyva_cms/components.json 中定位 components.json 文件。
- 通过读取每个模块的 etc/module.xml 将路径映射到模块名。
- 按 config.php 中声明的模块加载顺序合并 JSON 对象。
- 将结果输出为格式化 JSON。
- 注意模块加载顺序:组件按 app/etc/config.php 中模块出现的精确顺序合并,后面的模块可以通过使用相同的组件键覆盖前面模块的组件。
- 可用于调试 CMS 编辑器中哪些组件可用、验证新组件注册、检查模块间组件名冲突、导出组件定义用于文档。
适用边界 · 注意事项
- 项目不是 Magento 2 或未使用 Hyvä CMS 时。
- 无法访问项目根目录或开发容器环境时。