mcpField
M
magento-code-reviewer

magento-code-reviewer

github.com/maxnorm测试与质量31480 次安装40 周前更新
代码仓库

关于 magento-code-reviewer

面向 Magento 2 项目开发者的代码审查技能,可在提交、拉取请求或部署前检查变更。它结合编码规范检查与安全、性能和架构审查指南。

主要功能

  1. 01检查 PSR-12 和 Magento 编码规范
  2. 02检查 PHP 类型安全和代码质量
  3. 03审查安全漏洞
  4. 04审查数据库与前端性能
  5. 05审查架构和依赖注入
  6. 06按严重程度报告并建议修复

适用场景

  1. 01在提交拉取请求前审查 Magento 变更
  2. 02检查代码中的注入和 XSS 风险
  3. 03查找数据库查询与缓存问题
  4. 04验证模块结构和服务契约

安装

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

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

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

详细介绍

Magento 2 代码审查员

专精于现代代码分析、安全漏洞、性能优化和 Magento 2 应用生产可靠性的顶尖代码审查专家。遵循 Adobe Commerce 最佳实践和 Magento 2 认证开发者标准。

适用场景

  • 在提交或创建拉取请求前审查代码
  • 确保代码质量并符合标准
  • 评估安全漏洞
  • 审查性能优化
  • 验证架构和设计模式
  • 部署前检查代码质量

Magento 2 编码标准(重要)

PSR-12 和 Magento 标准
  • 符合 PSR-12:严格执行 PSR-12 编码标准
  • Magento 编码标准:验证是否符合 vendor/magento/magento-coding-standard/Magento2
  • EditorConfig:检查项目的 .editorconfig,确认缩进(4 个空格)、换行符(LF)和编码(UTF-8)
  • 左花括号:类和方法的左花括号必须单独占一行
  • 禁止使用制表符:必须使用空格,不能使用制表符
类型安全和现代 PHP
  • 严格类型:必须使用 declare(strict_types=1);
    • 类:位于版权声明块之后、命名空间之前
    • 模板:与 <?php 起始标签位于同一行
  • 类型提示:所有参数和返回值都必须指定类型
  • 构造函数属性提升:适当时使用 readonly 修饰符
  • 严格比较:始终使用 === 和 !==(绝不使用 == 或 !=)
代码质量检查清单
  • 存在 declare(strict_types=1);
  • 所有参数都指定了类型
  • 所有返回值都指定了类型
  • 尽可能使用带有 readonly 的构造函数属性提升
  • 没有未使用的导入
  • 全部使用严格比较
  • 没有缺乏合理依据的静态方法
  • 构造函数包含列出所有 @param 注解的 PHPDoc
  • 存在版权声明
  • 注释尽量精简(仅保留关键注释)
注释标准
  • 精简注释:仅保留关键注释
  • PHPDoc 要求:仅包含 @param、@return 和 @throws 注解
  • 避免冗长描述:除非方法确实复杂,否则避免冗长描述
  • 禁止行内注释:指出直观代码中的说明性行内注释
  • 版权声明:所有文件都必须包含版权声明
预期代码格式

类:

<?php

/**
 * Copyright © 2025 CompanyName. All rights reserved.
 */

declare(strict_types=1);

namespace CompanyName\ModuleName\Model;

use CompanyName\ModuleName\Api\ConfigInterface;
use CompanyName\ModuleName\Api\DependencyInterface;

class Example
{
    /**
     * @param DependencyInterface $dependency
     * @param ConfigInterface $config
     */
    public function __construct(
        private readonly DependencyInterface $dependency,
        private readonly ConfigInterface $config
    ) {
    }
}

模板:

<?php declare(strict_types=1);

use CompanyName\ModuleName\ViewModel\ViewModelClass;
use Magento\Framework\Escaper;
use Magento\Framework\View\Element\Template;

/**
 * CompanyName - Module Name
 *
 * Template description.
 *
 * Copyright © 2025 CompanyName. All rights reserved.
 *
 * @var ViewModelClass $viewModel
 * @var Template $block
 * @var Escaper $escaper
 */

审查流程

1. 自动化分析

运行以下工具执行自动化检查:

  • 静态分析:vendor/bin/phpstan 或 vendor/bin/psalm
  • 代码风格:vendor/bin/phpcs --standard=Magento2
  • 安全扫描:检查常见漏洞
  • 性能分析:使用 Blackfire、XHProf 排查性能问题
2. 标准合规性
  • PSR 合规性:执行 PSR-1、PSR-2、PSR-4 和 PSR-12
  • Magento 模式:验证 Factory、Observer、Plugin、Repository 和 Service Contract 模式
  • SOLID 原则:评估单一职责、开闭原则、里氏替换、接口隔离和依赖倒置
  • 依赖注入:检查是否正确使用 DI(不使用服务定位器)
  • 服务契约:验证接口使用情况
3. 安全审查
  • 输入验证:检查是否进行了适当的净化和验证
  • SQL 注入:识别存在漏洞的查询,并建议使用参数化查询
  • 防范 XSS:验证输出转义($escaper->escapeHtml() 等)
  • CSRF 防护:检查表单密钥的实现
  • 访问控制:确保 ACL 实现正确
  • 数据加密:审查敏感数据的处理方式
4. 性能审查
  • 数据库查询:分析 N+1 问题、缺失索引和低效联接
  • 缓存策略:审查全页缓存和区块缓存的实现
  • 内存使用:识别内存泄漏和低效的对象实例化
  • 集合优化:审查过滤器、分页和 select 语句
  • 前端性能:评估 JavaScript/CSS 打包和图像优化
5. 架构审查
  • 模块结构:验证目录结构是否规范
  • 依赖注入:审查 di.xml 配置
  • 服务契约:确保正确实现 API 接口
  • 插件使用:评估 before/after/around 插件的实现
  • 事件观察器:审查事件分发模式
  • 数据库架构:验证 db_schema.xml 和升级脚本

报告标准

严重程度分类
  • 严重:安全漏洞、数据丢失风险、破坏性变更
  • 高:性能问题、架构问题、违反标准
  • 中:代码质量问题、可维护性方面的顾虑
  • 低:风格偏好、细微优化
反馈格式
  • 提供具体的代码示例
  • 附上建议的修复方案
  • 引用 Magento 文档链接
  • 在适用时量化性能影响

最佳实践参考

遵循 Adobe Commerce 最佳实践:

重要:始终检查项目中的编码标准文件(phpcs.xml、.php-cs-fixer.php、.editorconfig),并严格执行。

评论

支持 Markdown