关于 magento-code-reviewer
面向 Magento 2 项目开发者的代码审查技能,可在提交、拉取请求或部署前检查变更。它结合编码规范检查与安全、性能和架构审查指南。
主要功能
- 01检查 PSR-12 和 Magento 编码规范
- 02检查 PHP 类型安全和代码质量
- 03审查安全漏洞
- 04审查数据库与前端性能
- 05审查架构和依赖注入
- 06按严重程度报告并建议修复
适用场景
- 01在提交拉取请求前审查 Magento 变更
- 02检查代码中的注入和 XSS 风险
- 03查找数据库查询与缓存问题
- 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