php-modernization
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChinesePHP Modernization Skill
PHP代码现代化技能
Modernize PHP applications to PHP 8.x with type safety, PSR compliance, and static analysis.
将PHP应用现代化升级至PHP 8.x版本,实现类型安全、PSR合规性及静态代码分析。
Expertise Areas
专业领域
- PHP 8.x: Constructor promotion, readonly, enums, match, attributes, union types
- PSR/PER Compliance: Active PHP-FIG standards
- Static Analysis: PHPStan (level 9+), PHPat, Rector, PHP-CS-Fixer
- Type Safety: DTOs/VOs over arrays, generics via PHPDoc
- PHP 8.x:构造函数属性提升、只读属性、枚举(enums)、match表达式、属性(attributes)、联合类型
- PSR/PER合规性:现行PHP-FIG标准
- 静态代码分析:PHPStan(9级及以上)、PHPat、Rector、PHP-CS-Fixer
- 类型安全:使用DTO/VO替代数组,通过PHPDoc实现泛型
Using Reference Documentation
参考文档使用说明
PHP Version Features
PHP版本特性
When implementing PHP 8.0-8.5 features (constructor promotion, readonly properties, enums, match expressions, attributes), consult .
references/php8-features.md在实现PHP 8.0-8.5版本特性(构造函数属性提升、只读属性、枚举、match表达式、属性)时,请查阅。
references/php8-features.mdStandards Compliance
标准合规性
When ensuring PSR/PER compliance or configuring PHP-CS-Fixer with , consult for active PHP-FIG standards.
@PER-CSreferences/psr-per-compliance.mdWhen configuring PHPStan levels or understanding level requirements, consult for level overview and production configuration.
references/phpstan-compliance.md在确保PSR/PER合规性或为PHP-CS-Fixer配置规则时,请查阅获取现行PHP-FIG标准。
@PER-CSreferences/psr-per-compliance.md在配置PHPStan级别或了解级别要求时,请查阅获取级别概述及生产环境配置方案。
references/phpstan-compliance.mdStatic Analysis Tools
静态分析工具
When setting up PHPStan, PHPat, Rector, or PHP-CS-Fixer, consult for configuration examples and integration patterns.
references/static-analysis-tools.md在搭建PHPStan、PHPat、Rector或PHP-CS-Fixer时,请查阅获取配置示例及集成模式。
references/static-analysis-tools.mdType Safety
类型安全
When implementing type-safe code or migrating from arrays to DTOs, consult for type system strategies and best practices.
references/type-safety.mdWhen creating request DTOs or handling safe integer conversion, consult for DTO patterns and validation approaches.
references/request-dtos.md在实现类型安全代码或从数组迁移至DTO时,请查阅获取类型系统策略及最佳实践。
references/type-safety.md在创建请求DTO或处理安全整数转换时,请查阅获取DTO设计模式及验证方法。
references/request-dtos.mdArchitecture Patterns
架构模式
When implementing adapter registry patterns for multiple external services, consult for dynamic adapter instantiation from database configuration.
references/adapter-registry-pattern.mdWhen using Symfony DI, events, or modern framework patterns, consult for architecture best practices.
references/symfony-patterns.md在为多个外部服务实现适配器注册模式时,请查阅获取基于数据库配置的动态适配器实例化方案。
references/adapter-registry-pattern.md在使用Symfony依赖注入(DI)、事件或现代框架模式时,请查阅获取架构最佳实践。
references/symfony-patterns.mdMigration Planning
迁移规划
When planning PHP version upgrades or modernization projects, consult for assessment phases, compatibility checks, and migration workflows.
references/migration-strategies.md在规划PHP版本升级或现代化项目时,请查阅获取评估阶段、兼容性检查及迁移流程相关内容。
references/migration-strategies.mdRunning Scripts
运行脚本
Project Verification
项目验证
To verify a PHP project meets modernization requirements:
bash
scripts/verify-php-project.sh /path/to/projectThis script checks:
- PHPStan level compliance
- PHP-CS-Fixer configuration
- Type declaration coverage
- DTO usage patterns
要验证PHP项目是否符合现代化要求:
bash
scripts/verify-php-project.sh /path/to/project该脚本会检查以下内容:
- PHPStan级别合规性
- PHP-CS-Fixer配置
- 类型声明覆盖率
- DTO使用模式
Required Tools
必备工具
When setting up a modernized PHP project, ensure these tools are configured:
| Tool | Requirement |
|---|---|
| PHPStan | Level 9 minimum, level 10 recommended |
| PHPat | Required for defined architectures |
| Rector | Required for automated modernization |
| PHP-CS-Fixer | Required with |
在搭建现代化PHP项目时,请确保配置以下工具:
| 工具 | 要求 |
|---|---|
| PHPStan | 最低9级,推荐10级 |
| PHPat | 定义架构时必备 |
| Rector | 自动化现代化改造必备 |
| PHP-CS-Fixer | 需配置 |
Core Rules
核心规则
DTOs Required
强制使用DTO
When passing structured data, always use DTOs instead of arrays:
php
// Bad: public function createUser(array $data): array
// Good: public function createUser(CreateUserDTO $dto): UserDTO传递结构化数据时,必须使用DTO替代数组:
php
// 错误示例:public function createUser(array $data): array
// 正确示例:public function createUser(CreateUserDTO $dto): UserDTOEnums Required
强制使用枚举
When defining fixed value sets, always use backed enums instead of constants:
php
// Bad: const STATUS_DRAFT = 'draft'; function setStatus(string $s)
// Good: enum Status: string { case Draft = 'draft'; }定义固定值集合时,必须使用后台枚举(backed enums)替代常量:
php
// 错误示例:const STATUS_DRAFT = 'draft'; function setStatus(string $s)
// 正确示例:enum Status: string { case Draft = 'draft'; }PSR Interface Compliance
PSR接口合规性
When type-hinting dependencies, use PSR interfaces (PSR-3, PSR-6, PSR-7, PSR-11, PSR-14, PSR-18).
对依赖进行类型提示时,请使用PSR接口(PSR-3、PSR-6、PSR-7、PSR-11、PSR-14、PSR-18)。
Migration Checklist
迁移检查清单
When modernizing a PHP project, verify these requirements:
- in all files
declare(strict_types=1) - PER Coding Style via PHP-CS-Fixer ()
@PER-CS - PHPStan level 9+ (level 10 for new projects)
- PHPat architecture tests
- Return types and parameter types on all methods
- DTOs for data transfer, no array params/returns
- Backed enums for all status/type values
- Type-hint against PSR interfaces
对PHP项目进行现代化改造时,请验证以下要求:
- 所有文件中添加声明
declare(strict_types=1) - 通过PHP-CS-Fixer实现PER编码风格()
@PER-CS - PHPStan级别达到9级及以上(新项目推荐10级)
- 配置PHPat架构测试
- 所有方法添加返回类型和参数类型声明
- 使用DTO进行数据传递,禁止使用数组作为参数或返回值
- 所有状态/类型值使用后台枚举(backed enums)
- 针对PSR接口进行类型提示
Scoring Criteria
评分标准
| Criterion | Requirement |
|---|---|
| PHPStan | Level 9 minimum |
| PHP-CS-Fixer | |
| DTOs/VOs | No array params/returns for structured data |
| Enums | Backed enums for fixed value sets |
Contributing: https://github.com/netresearch/php-modernization-skill
| 评估项 | 要求 |
|---|---|
| PHPStan | 最低9级 |
| PHP-CS-Fixer | |
| DTO/VO | 结构化数据传递禁止使用数组作为参数或返回值 |
| 枚举 | 固定值集合使用后台枚举(backed enums) |