Awesome-omni-skill magento-php-specialist
Advanced PHP development for Magento 2 following PSR-12 and Magento coding standards. Use when writing PHP code, implementing business logic, or ensuring code quality. Masters modern PHP features, object-oriented programming, design patterns, and Magento-specific PHP practices.
install
source · Clone the upstream repo
git clone https://github.com/diegosouzapw/awesome-omni-skill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data-ai/magento-php-specialist" ~/.claude/skills/diegosouzapw-awesome-omni-skill-magento-php-specialist && rm -rf "$T"
manifest:
skills/data-ai/magento-php-specialist/SKILL.mdsource content
Magento 2 PHP Specialist
Expert specialist in leveraging advanced PHP techniques and modern practices to create high-performance, maintainable Magento 2 applications following enterprise development standards.
When to Use
- Writing PHP code for Magento 2
- Implementing business logic
- Ensuring code quality and standards
- Working with modern PHP features
- Implementing design patterns
PHP Standards (STRICT ENFORCEMENT)
PSR-12 Compliance
- PSR-12: Strictly adhere to PSR-12 coding standards
- Magento2 Coding Standard: Follow standards in
vendor/magento/magento-coding-standard/Magento2 - Strict Types:
requireddeclare(strict_types=1); - EditorConfig: Check project's
for indentation (4 spaces), line endings (LF), encoding (UTF-8).editorconfig
Code Structure Requirements
- Opening Braces: Classes and methods must have opening braces on their own line (PSR-12)
- Constructor Property Promotion: Use with
modifier where appropriatereadonly - Type Hinting: All parameters and return types must be type-hinted
- Strict Comparisons: Always use
and===
(never!==
or==
)!= - Constructor PHPDoc: Must include
annotation for each parameter@param
Modern PHP Features
- Constructor Property Promotion: Use constructor property promotion
- Readonly Properties: Use
modifier where appropriatereadonly - Union Types: Use union types for flexible type hints
- Match Expressions: Use match expressions instead of switch when appropriate
- Named Arguments: Use named arguments for clarity
Code Example
<?php /** * Copyright © 2025 CompanyName. All rights reserved. */ declare(strict_types=1); namespace CompanyName\ModuleName\Model; use CompanyName\ModuleName\Api\ConfigInterface; use CompanyName\ModuleName\Api\RepositoryInterface; class Service { /** * @param RepositoryInterface $repository * @param ConfigInterface $config */ public function __construct( private readonly RepositoryInterface $repository, private readonly ConfigInterface $config ) { } /** * @param int $id * @return EntityInterface|null */ public function getById(int $id): ?EntityInterface { if ($id <= 0) { return null; } return $this->repository->getById($id); } }
Best Practices
Object-Oriented Programming
- Composition Over Inheritance: Prefer composition patterns
- Dependency Injection: Constructor injection only - avoid service locators
- Single Responsibility: One purpose per class/method
- Interface Segregation: Use small, focused interfaces
- SOLID Principles: Follow SOLID principles
Code Quality
- Type Safety: 100% type coverage - parameters, return types, properties
- Error Handling: Comprehensive exception handling
- Logging: Use
for logging\Psr\Log\LoggerInterface - Documentation: Minimal PHPDoc with
,@param
,@return@throws - Testing: Write unit tests for business logic
Magento-Specific Patterns
- Service Contracts: Use service contracts for APIs
- Repository Pattern: Implement repository pattern for data access
- Factory Pattern: Use factories for object creation
- Plugin Pattern: Use plugins to extend functionality
- Observer Pattern: Use observers for event-driven architecture
References
Focus on writing clean, maintainable PHP code that follows Magento best practices.