Hyva Create Module

hyva-themes/hyva-ai-tools/skills/hyva-create-module

作者 hyva-themesa28a3333bcfae05dcba07e88f38a5ff9579903c7無授權條款收錄於 2026年10月9日更新於 2026年10月9日

Create a new Magento 2 module in app/code/. This skill should be used when the user wants to create a module, scaffold a new module, generate module boilerplate, or set up a custom module. It handles registration.php, composer.json, module.xml generation with configurable dependencies. Trigger phrases include "create module", "new module", "scaffold module", "generate module".

AI 產生的概覽

在 app/code/ 中建立新的 Magento 2 模組,產生 registration.php、composer.json 與 module.xml。

功能
在 app/code/{Vendor}/{Module} 下建立 Magento 2 模組目錄,內含 registration.php、composer.json 與 etc/module.xml。它會替換供應商與模組名稱的範本佔位符,將 PascalCase 名稱轉為 kebab-case,並可選擇加入相依項目與 composer require 項目。它會驗證命名與目錄是否已存在,並可透過另一個技能選擇性地執行 bin/magento setup:upgrade。
適用情境
當使用者或其他技能想要建立、搭建或產生新的 Magento 2 模組樣板程式碼時使用。它被設計為供需要模組搭建的其他技能呼叫的公用工具。
執行需求
需要 hyva-exec-shell-cmd 技能來在開發環境中執行命令,例如 bin/magento setup:upgrade。附帶 assets/templates 下的範本檔案,但不含指令碼。預期存在包含 app/code/ 的 Magento 2 程式碼庫。

Create Magento 2 Module

This utility skill creates new Magento 2 modules in app/code/. It is designed to be called by other skills that need module scaffolding.

Command execution: For commands that need to run inside the development environment (e.g., bin/magento), use the hyva-exec-shell-cmd skill to detect the environment and determine the appropriate command wrapper.

Parameters

When invoking this skill, the calling skill should provide:

ParameterRequiredDescription
vendorYesVendor name in PascalCase (e.g., Acme)
moduleYesModule name in PascalCase (e.g., CustomFeature)
descriptionNoModule description for composer.json (default: "[Vendor] [Module] module")
dependenciesNoArray of module dependencies for <sequence> in module.xml
composer_requireNoObject of composer requirements (package: version)

Workflow

Step 1: Validate Input

  • Verify vendor name is PascalCase (starts with uppercase, alphanumeric only)
  • Verify module name is PascalCase
  • Check that app/code/{Vendor}/{Module} does not already exist

Step 2: Create Directory Structure

app/code/{Vendor}/{Module}/├── registration.php├── composer.json└── etc/    └── module.xml

Step 3: Generate Files

registration.php

Use template assets/templates/registration.php.tpl:

  • Replace {{VENDOR}} with vendor name
  • Replace {{MODULE}} with module name
composer.json

Use template assets/templates/composer.json.tpl:

  • Replace {{VENDOR}} with vendor name (PascalCase)
  • Replace {{MODULE}} with module name (PascalCase)
  • Replace {{vendor_kebabcase}} with kebab-case, hyphenated vendor name
  • Replace {{module_kebabcase}} with kebab-case, hyphenated module name
  • Replace {{DESCRIPTION}} with description
  • Add entries from composer_require parameter to the require section
module.xml

Use template assets/templates/module.xml.tpl:

  • Replace {{VENDOR}} with PascalCase vendor name
  • Replace {{MODULE}} with PascalCase module name
  • Replace {{SEQUENCE}} with <sequence> block containing dependencies, or empty string if none

Step 4: Run Setup (Optional)

If the calling skill requests it, run bin/magento setup:upgrade using the hyva-exec-shell-cmd skill for the appropriate wrapper.

Error Handling

Abort module creation and report the error to the calling skill when:

ConditionAction
Vendor name not PascalCaseReport: "Invalid vendor name '{name}': must start with uppercase letter and contain only alphanumeric characters"
Module name not PascalCaseReport: "Invalid module name '{name}': must start with uppercase letter and contain only alphanumeric characters"
Directory already existsReport: "Module already exists at app/code/{Vendor}/{Module}"
Cannot create directoryReport: "Failed to create directory app/code/{Vendor}/{Module}: {error}"
Cannot write fileReport: "Failed to write {filename}: {error}"

If hyva-exec-shell-cmd skill is unavailable when Step 4 is requested, skip the setup:upgrade step and report: "Skipped setup:upgrade - hyva-exec-shell-cmd skill not available. Run manually: bin/magento setup:upgrade"

Template Placeholders

PlaceholderDescriptionExample
{{VENDOR}}Vendor name (PascalCase)Acme
{{MODULE}}Module name (PascalCase)CustomFeature
{{vendor_kebabcase}}Vendor name (kebab-case, split on capitals)acme
{{module_kebabcase}}Module name (kebab-case, split on capitals)custom-feature
{{DESCRIPTION}}Module descriptionAcme CustomFeature module
{{SEQUENCE}}Module sequence XML or empty<sequence><module name="Magento_Catalog"/></sequence>

PascalCase to kebab-case Conversion

Convert module names by inserting a hyphen before each capital letter and lowercasing:

PascalCasekebab-case
CustomFeaturecustom-feature
ShoppingCartGraphQlshopping-cart-graph-ql
CmsComponentscms-components
MyModulemy-module

Usage by Other Skills

Skills should reference this skill for module creation:

To create the module, use the `hyva-create-module` skill with:- vendor: "Acme"- module: "CmsComponents"- dependencies: ["Hyva_CmsBase"]- composer_require: {"hyva-themes/commerce-module-cms": "*"}

Example Output

For vendor Acme, module CmsComponents, with Hyva_CmsBase dependency:

app/code/Acme/CmsComponents/registration.php:

php
<?phpdeclare(strict_types=1);
use Magento\Framework\Component\ComponentRegistrar;
ComponentRegistrar::register(ComponentRegistrar::MODULE, 'Acme_CmsComponents', __DIR__);

app/code/Acme/CmsComponents/composer.json:

json
{    "name": "acme/module-cms-components",    "description": "Acme CmsComponents module",    "type": "magento2-module",    "require": {        "php": ">=8.1",        "hyva-themes/commerce-module-cms": "*"    },    "autoload": {        "files": ["registration.php"],        "psr-4": {            "Acme\\CmsComponents\\": ""        }    }}

app/code/Acme/CmsComponents/etc/module.xml:

xml
<?xml version="1.0"?><config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"        xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">    <module name="Acme_CmsComponents">        <sequence>            <module name="Hyva_CmsBase"/>        </sequence>    </module></config>
<!-- Copyright © Hyvä Themes https://hyva.io. All rights reserved. Licensed under OSL 3.0 -->

來源與署名

來源:hyva-themes/hyva-ai-tools位於skills/hyva-create-module提交a28a333

授權條款: 無授權條款

內容歸原作者所有。SourceWeft 從公開儲存庫中收錄這些內容。

檢舉或申請下架