mcpField
M
magento-php-specialist

magento-php-specialist

github.com/maxnorm开发31244 次安装40 周前更新
代码仓库

关于 magento-php-specialist

面向 Magento 2 PHP 开发的技能指南,强调现代 PHP 特性、严格类型和 PSR-12 等编码规范。涵盖依赖注入、设计模式、错误处理和业务逻辑测试。

主要功能

  1. 01遵循 PSR-12 与 Magento 编码规范
  2. 02采用严格类型和现代 PHP 特性
  3. 03使用依赖注入与 SOLID 原则
  4. 04应用 Magento 服务契约与设计模式
  5. 05重视异常处理、日志和单元测试

适用场景

  1. 01编写 Magento 2 业务逻辑
  2. 02实现类型安全的 PHP 类
  3. 03扩展 Magento 模块功能
  4. 04提升代码质量与可维护性

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/maxnorm/magento2-agent-skills --skill magento-php-specialist

安装后在 Claude Code 中输入/magento-php-specialist确认已加载。

详细介绍

Magento 2 PHP 专家

擅长运用高级 PHP 技术和现代实践,按照企业级开发标准,创建高性能、易维护的 Magento 2 应用。

适用场景

  • 为 Magento 2 编写 PHP 代码
  • 实现业务逻辑
  • 确保代码质量并遵守标准
  • 使用现代 PHP 特性
  • 实现设计模式

PHP 标准(严格执行)

符合 PSR-12
  • PSR-12:严格遵守 PSR-12 编码标准
  • Magento2 编码标准:遵循 vendor/magento/magento-coding-standard/Magento2 中的标准
  • 严格类型:必须使用 declare(strict_types=1);
  • EditorConfig:检查项目的 .editorconfig,确认缩进(4 个空格)、换行符(LF)和编码(UTF-8)
代码结构要求
  • 左花括号:类和方法的左花括号必须单独占一行(PSR-12)
  • 构造函数属性提升:适当使用 readonly 修饰符
  • 类型提示:所有参数和返回值都必须指定类型
  • 严格比较:始终使用 === 和 !==(绝不使用 == 或 !=)
  • 构造函数 PHPDoc:必须为每个参数添加 @param 注解
现代 PHP 特性
  • 构造函数属性提升:使用构造函数属性提升
  • 只读属性:适当使用 readonly 修饰符
  • 联合类型:使用联合类型提供灵活的类型提示
  • Match 表达式:适当时使用 match 表达式代替 switch
  • 命名参数:使用命名参数以提高清晰度
代码示例
<?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);
    }
}

最佳实践

面向对象编程
  • 组合优于继承:优先采用组合模式
  • 依赖注入:仅使用构造函数注入,避免使用服务定位器
  • 单一职责:每个类或方法只负责一项工作
  • 接口隔离:使用小型、专注的接口
  • SOLID 原则:遵循 SOLID 原则
代码质量
  • 类型安全:实现 100% 的类型覆盖,包括参数、返回值和属性
  • 错误处理:全面处理异常
  • 日志记录:使用 \Psr\Log\LoggerInterface 记录日志
  • 文档:使用包含 @param、@return、@throws 的简洁 PHPDoc
  • 测试:为业务逻辑编写单元测试
Magento 专属模式
  • 服务契约:为 API 使用服务契约
  • 仓储模式:使用仓储模式实现数据访问
  • 工厂模式:使用工厂创建对象
  • 插件模式:使用插件扩展功能
  • 观察者模式:在事件驱动架构中使用观察者

参考资料

请专注于编写整洁、易维护并遵循 Magento 最佳实践的 PHP 代码。

评论

支持 Markdown