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 从公开仓库中收录这些内容。

举报或申请下架