File contents PHP 开发技能
你是一位资深 PHP 开发工程师。在协助 PHP 项目时,请遵循以下规范。
技术栈强制约束
使用 PHP 8.2+ 版本
使用 Composer 管理依赖
使用 PHP-FPM + Nginx 部署
开启 opcache 提升性能
代码风格遵循 PSR-12 规范
命名规范
类名:PascalCase(UserService、OrderController)
接口名:PascalCase(UserRepositoryInterface)
trait 名:PascalCase(HasTimestamps)
方法名:camelCase(getUserById、calculateTotal)
变量名:camelCase($userName、$orderList)
常量:UPPER_SNAKE_CASE(MAX_RETRY_COUNT)
函数名:snake_case(get_user_by_id)
文件名:PascalCase(类文件)或 snake_case(其他文件)
数据库表名:snake_case + 复数(users、order_items)
命名语义化,禁止拼音、无意义缩写
编码规范
遵循 PSR-12 编码规范
使用严格类型:declare(strict_types=1);
使用类型声明:参数类型和返回值类型
使用 match 替代 switch(简单值匹配)
使用命名参数提高可读性
使用 null 合并运算符 ??
使用 null 安全运算符 ?->
使用枚举(enum)替代常量集合
使用属性(Attributes)替代注解注释
注释规范
所有类、接口必须有中文 PHPDoc 注释
所有 public 方法必须有中文 PHPDoc 注释:@param、@return、@throws
复杂逻辑必须添加中文行内注释
TODO 注释格式:// TODO(作者): 具体待办事项描述
禁止无意义注释
格式规范
统一使用 4 空格缩进,禁止 Tab
单行代码长度不超过 120 字符
函数体长度不超过 80 行
大括号不换行(K&R 风格)
使用 PHP-CS-Fixer 格式化代码
使用 PHPStan 静态分析
代码质量强制要求
必须使用 declare(strict_types=1)
禁止魔法值:常量必须定义为命名常量
集合操作前必须判空
禁止使用 global 关键字
禁止使用 eval()、exec()、system()
禁止直接使用 $_GET/$_POST,使用请求对象
所有用户输入必须过滤和验证
禁止在循环中执行数据库查询
使用 PHPStan level 8 进行静态分析
安全规范
SQL 注入:使用 PDO 预处理语句或 ORM
XSS:输出时使用 htmlspecialchars() 转义
CSRF:表单提交使用 Token 验证
文件上传:验证类型和大小,禁止上传可执行文件
密码:使用 password_hash() / password_verify()
会话:使用 session_regenerate_id() 防止固定会话
禁止在日志中记录敏感信息
数据库规范
使用 PDO 或 Eloquent ORM
参数化查询,禁止字符串拼接 SQL
数据库连接配置统一管理
事务处理使用 try/catch
读写分离配置
测试规范
使用 PHPUnit 进行单元测试
测试文件命名:{类名}Test.php
测试方法命名:test_{方法名}_{场景}
使用工厂模式创建测试数据
覆盖率目标:核心逻辑 80%+
最佳实践
使用 Laravel / Symfony 框架
使用依赖注入容器
使用中间件处理横切关注点
使用队列处理耗时任务
使用 Redis 缓存热点数据
使用 env() 管理环境变量
1 --- 2 name: php 3 description: Php 4 --- 5 6 # PHP 开发技能 7 8 你是一位资深 PHP 开发工程师。在协助 PHP 项目时,请遵循以下规范。 9 10 ## 技术栈强制约束 11 12 - 使用 PHP 8.2+ 版本 13 - 使用 Composer 管理依赖 14 - 使用 PHP-FPM + Nginx 部署 15 - 开启 `opcache` 提升性能 16 - 代码风格遵循 PSR-12 规范 17 18 ## 命名规范 19 20 - 类名:PascalCase(`UserService`、`OrderController`) 21 - 接口名:PascalCase(`UserRepositoryInterface`) 22 - trait 名:PascalCase(`HasTimestamps`) 23 - 方法名:camelCase(`getUserById`、`calculateTotal`) 24 - 变量名:camelCase(`$userName`、`$orderList`) 25 - 常量:UPPER_SNAKE_CASE(`MAX_RETRY_COUNT`) 26 - 函数名:snake_case(`get_user_by_id`) 27 - 文件名:PascalCase(类文件)或 snake_case(其他文件) 28 - 数据库表名:snake_case + 复数(`users`、`order_items`) 29 - 命名语义化,禁止拼音、无意义缩写 30 31 ## 编码规范 32 33 - 遵循 PSR-12 编码规范 34 - 使用严格类型:`declare(strict_types=1);` 35 - 使用类型声明:参数类型和返回值类型 36 - 使用 `match` 替代 `switch`(简单值匹配) 37 - 使用命名参数提高可读性 38 - 使用 null 合并运算符 `??` 39 - 使用 null 安全运算符 `?->` 40 - 使用枚举(`enum`)替代常量集合 41 - 使用属性(Attributes)替代注解注释 42 43 ## 注释规范 44 45 - 所有类、接口必须有中文 PHPDoc 注释 46 - 所有 public 方法必须有中文 PHPDoc 注释:`@param`、`@return`、`@throws` 47 - 复杂逻辑必须添加中文行内注释 48 - TODO 注释格式:`// TODO(作者): 具体待办事项描述` 49 - 禁止无意义注释 50 51 ## 格式规范 52 53 - 统一使用 4 空格缩进,禁止 Tab 54 - 单行代码长度不超过 120 字符 55 - 函数体长度不超过 80 行 56 - 大括号不换行(K&R 风格) 57 - 使用 PHP-CS-Fixer 格式化代码 58 - 使用 PHPStan 静态分析 59 60 ## 代码质量强制要求 61 62 - 必须使用 `declare(strict_types=1)` 63 - 禁止魔法值:常量必须定义为命名常量 64 - 集合操作前必须判空 65 - 禁止使用 `global` 关键字 66 - 禁止使用 `eval()`、`exec()`、`system()` 67 - 禁止直接使用 `$_GET`/`$_POST`,使用请求对象 68 - 所有用户输入必须过滤和验证 69 - 禁止在循环中执行数据库查询 70 - 使用 `PHPStan` level 8 进行静态分析 71 72 ## 安全规范 73 74 - SQL 注入:使用 PDO 预处理语句或 ORM 75 - XSS:输出时使用 `htmlspecialchars()` 转义 76 - CSRF:表单提交使用 Token 验证 77 - 文件上传:验证类型和大小,禁止上传可执行文件 78 - 密码:使用 `password_hash()` / `password_verify()` 79 - 会话:使用 `session_regenerate_id()` 防止固定会话 80 - 禁止在日志中记录敏感信息 81 82 ## 数据库规范 83 84 - 使用 PDO 或 Eloquent ORM 85 - 参数化查询,禁止字符串拼接 SQL 86 - 数据库连接配置统一管理 87 - 事务处理使用 `try/catch` 88 - 读写分离配置 89 90 ## 测试规范 91 92 - 使用 PHPUnit 进行单元测试 93 - 测试文件命名:`{类名}Test.php` 94 - 测试方法命名:`test_{方法名}_{场景}` 95 - 使用工厂模式创建测试数据 96 - 覆盖率目标:核心逻辑 80%+ 97 98 ## 最佳实践 99 100 - 使用 Laravel / Symfony 框架 101 - 使用依赖注入容器 102 - 使用中间件处理横切关注点 103 - 使用队列处理耗时任务 104 - 使用 Redis 缓存热点数据 105 - 使用 `env()` 管理环境变量
dkbnull/hello-skill/tree/main/languages/skills/php commit dafab9a9ae
Frequently asked questions How do I install the PHP skill? Run npx skillmds@latest add dkbnull/php in your terminal (requires Node.js), paste this page's agent-chat prompt into Claude, Cursor, or any MCP-connected agent, or download the SKILL.md file and copy it into your agent's skills directory.
What does the PHP skill do? Php It is listed under Coding & Dev Tools on SkillMD.
Is PHP safe to use? This skill has not completed SkillMD's automated safety review yet. SkillMD never runs a skill's scripts for you; review the SKILL.md before installing.
Which AI agents work with PHP? This skill is tagged as working with Claude Code, Claude.ai, OpenAI Codex. SKILL.md is an open format, so most agents that read a skills directory can load it too.
Is PHP free to use? Yes. Installing skills from SkillMD is free, and the skill stays under its author's original license.
Who published PHP? dkbnull (@dkbnull) published this skill. Their other Agent Skills are listed on their SkillMD profile.