Magento Module Developer

maxnorm/magento2-agent-skills/skills/magento-module-developer

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

Creates robust, maintainable, and extensible Magento 2 modules following enterprise architecture patterns. Use when developing custom modules, implementing new functionality, creating extensions, or building Magento 2 components. Masters dependency injection, service contracts, repository patterns, and module architecture.

AI 產生的概覽

指導依照 Adobe Commerce 規範建立架構良好、易於維護的 Magento 2 模組。

功能
完整說明 Magento 2 模組開發流程:規劃與架構、模組建置(registration.php、composer.json 與 etc/module.xml),以及模型、資源模型、集合、儲存庫、服務與控制器的核心實作。涵蓋 di.xml、db_schema.xml 等設定檔,以及服務契約、儲存庫模式、依賴注入、外掛與事件等設計模式,並涉及後端、前端與資料庫元件。同時列出程式碼品質、安全性、效能與擴充性方面的最佳實務,以及測試與文件撰寫指引。
適用情境
適用於建立新的 Magento 2 模組或擴充功能、實作自訂功能,或規劃模組架構與結構時。也適合設定模組相依性與組態、實作服務契約與 API,或建立資料庫結構與資料修補程式。適合在 Adobe Commerce 或 Magento 2 程式碼庫中工作的開發人員。
執行需求
僅有指示說明,沒有指令碼或附帶資源。需要 Magento 2 / Adobe Commerce 程式碼庫,以及 PHP 工具鏈(Composer、PHPStan 或 Psalm)來進行所述工作。

Magento 2 Module Developer

Expert specialist in creating well-architected, maintainable, and extensible Magento 2 modules that seamlessly integrate with Magento's core framework following Adobe Commerce best practices.

When to Use

  • Creating new Magento 2 modules or extensions
  • Implementing custom functionality
  • Building module architecture and structure
  • Setting up module dependencies and configuration
  • Implementing service contracts and APIs
  • Creating database schemas and data patches

Module Development Process

1. Planning & Architecture

  • Requirements Analysis: Break down functional and non-functional requirements
  • Architecture Design: Plan module structure and integration points
  • Database Design: Design entity relationships and data flow
  • API Design: Define service contracts and data transfer objects
  • Performance Considerations: Plan for scalability and optimization

2. Module Setup

  • Module Structure: Create proper directory structure following Magento conventions:
    app/code/Vendor/ModuleName/├── etc/│   ├── module.xml│   ├── di.xml│   ├── routes.xml│   ├── system.xml│   ├── acl.xml│   └── db_schema.xml├── Model/├── Block/├── Controller/├── Api/├── view/└── registration.php
  • Registration: Create registration.php and composer.json
  • Module Declaration: Create etc/module.xml with proper dependencies
  • Version Control: Set up Git with proper .gitignore

3. Core Implementation

Models & Entities
  • Entity models extending Magento\Framework\Model\AbstractModel
  • Resource models extending Magento\Framework\Model\ResourceModel\Db\AbstractDb
  • Collections extending Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection
  • Use db_schema.xml for database schema definitions
Repositories
  • Implement repository pattern for data access
  • Create repository interfaces in Api/ directory
  • Implement repositories in Model/ directory
  • Use service contracts for clean API interfaces
Service Classes
  • Business logic in service classes
  • Use dependency injection for all dependencies
  • Implement service contracts for extensibility
Controllers
  • Frontend controllers extending Magento\Framework\App\Action\Action
  • Admin controllers extending Magento\Backend\App\Action
  • API controllers implementing service contracts

4. Configuration Files

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="Vendor_ModuleName" setup_version="1.0.0">        <sequence>            <module name="Magento_Store"/>        </sequence>    </module></config>
di.xml
  • Configure dependency injection
  • Define preferences, virtual types, plugins
  • Use proper scope (global, frontend, adminhtml, webapi_rest, webapi_soap)
db_schema.xml
  • Define database tables, columns, indexes
  • Use proper data types and constraints
  • Follow Magento naming conventions

Design Patterns & Principles

Service Contracts

  • Create interfaces in Api/ directory
  • Implement clean API interfaces
  • Use data transfer objects (DTOs) for data exchange
  • Maintain backward compatibility

Repository Pattern

  • Separate data access from business logic
  • Use repositories for all data operations
  • Implement proper error handling
  • Support transactions where needed

Dependency Injection

  • Use constructor injection only
  • Avoid service locator pattern
  • Leverage Magento's DI container
  • Use type hints for all dependencies

Plugin System

  • Use plugins to extend functionality
  • Prefer before/after plugins over around plugins
  • Avoid around plugins unless necessary
  • Document plugin execution order

Event/Observer Pattern

  • Dispatch events for extensibility
  • Implement observers for loose coupling
  • Use proper event naming conventions
  • Document event data structure

Module Components

Backend Components

  • Models: Entity models, resource models, collections
  • Repositories: Data access layer implementations
  • Services: Business logic and application services
  • Controllers: Admin controllers and API endpoints
  • Blocks: Admin interface building blocks
  • UI Components: Admin grids, forms, and components

Frontend Components

  • Controllers: Frontend page controllers and actions
  • Blocks: View logic and data preparation
  • Templates: PHTML template files with proper escaping
  • Layout Files: XML layout configurations
  • JavaScript: Frontend interaction and AJAX functionality
  • CSS/LESS: Styling and responsive design

Database Components

  • db_schema.xml: Database schema definitions
  • Data Patches: Data migration and setup scripts
  • Schema Patches: Database structure modifications
  • Indexers: Custom search and filter indexers

Advanced Features

API Development

  • Create REST endpoints with proper authentication
  • Implement GraphQL resolvers and schemas
  • Design clean API interfaces
  • Implement rate limiting and security measures

Event System Integration

  • Dispatch custom events for extensibility
  • Implement event observers
  • Create before/after/around plugins
  • Use virtual types for flexibility

Caching & Performance

  • Implement custom cache types and tags
  • Handle cache invalidation properly
  • Use lazy loading for expensive operations
  • Optimize database queries and joins

Multi-Store Support

  • Handle multi-store configurations
  • Implement proper configuration scopes
  • Ensure proper data separation
  • Support store context switching

Best Practices

Code Quality

  • Follow PSR-12 and Magento coding standards
  • Use declare(strict_types=1); in all PHP files
  • Implement comprehensive type hinting
  • Write unit and integration tests
  • Maintain high code coverage

Security

  • Implement input validation
  • Use proper output escaping in templates
  • Implement CSRF protection
  • Enforce proper access control (ACL)
  • Handle sensitive data appropriately

Performance

  • Optimize database queries
  • Use proper indexes
  • Implement caching strategies
  • Monitor memory usage
  • Optimize collection loading

Extensibility

  • Provide extension points via plugins
  • Dispatch events for third-party integration
  • Allow configuration without code changes
  • Use interface segregation
  • Maintain backward compatibility

Testing

  • Unit Tests: Test individual classes and methods
  • Integration Tests: Test module integration with core
  • Functional Tests: End-to-end test scenarios
  • Static Analysis: Use PHPStan/Psalm for code quality

Documentation

  • Technical documentation for developers
  • User documentation for end users
  • API documentation for all public APIs
  • Installation guides
  • Troubleshooting guides

References

Focus on creating modules that are maintainable, extensible, and aligned with Magento's enterprise-grade architecture principles.

來源與署名

來源:maxnorm/magento2-agent-skills位於skills/magento-module-developer提交b3a20f9

授權條款: 無授權條款

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

檢舉或申請下架