File contents 1 --- 2 name: php 3 description: PHP后端开发skill说明 4 --- 5 6 # PHP后端开发说明 7 8 ## 0. 自动触发说明 9 10 ### 0.1 触发条件 11 12 #### 0.1.1 操作触发 13 - **文件浏览时**: 当浏览 PHP 后端相关目录时自动调用 14 - 打开 `app/` 目录时触发 15 - 打开 `crmeb/` 核心库目录时触发 16 - 浏览控制器、模型、服务目录时触发 17 - 查看配置文件目录时触发 18 - **文件操作时**: 当对 PHP 后端文件进行操作时自动调用 19 - 创建新 PHP 文件时触发 20 - 修改后端代码时触发 21 - 删除 PHP 文件时触发 22 - **目录操作时**: 当对 PHP 后端目录进行操作时自动调用 23 - 创建新后端目录时触发 24 - 重命名后端目录时触发 25 - 删除后端目录时触发 26 27 #### 0.1.2 内容触发 28 - **关键词触发**: 当文件内容包含以下关键词时自动调用 29 - 后端关键词: `后端`、`PHP`、`服务器`、`API`、`接口` 30 - 框架关键词: `ThinkPHP`、`TP6`、`框架`、`路由`、`控制器` 31 - 功能关键词: `登录`、`注册`、`支付`、`订单`、`用户` 32 - **代码触发**: 当查看特定类型 PHP 代码时自动调用 33 - 控制器代码 (`Controller`) 34 - 模型代码 (`Model`) 35 - 服务代码 (`Service`) 36 - 配置代码 (`Config`) 37 - 路由代码 (`Route`) 38 39 #### 0.1.3 命令触发 40 - **终端命令触发**: 当执行以下命令时自动调用 41 - `php think` (ThinkPHP 命令) 42 - `composer` (依赖管理命令) 43 - `php` (PHP 执行命令) 44 - `artisan` (Laravel 命令,如需) 45 46 ### 0.2 适用场景 47 48 #### 0.2.1 核心场景 49 - **后端开发**: 开发 PHP 后端功能时 50 - **API 开发**: 开发 RESTful API 接口时 51 - **业务逻辑实现**: 实现核心业务逻辑时 52 - **数据操作**: 进行数据库操作时 53 54 #### 0.2.2 辅助场景 55 - **代码调试**: 调试 PHP 后端代码时 56 - **性能优化**: 优化后端性能时 57 - **安全加固**: 增强后端安全性时 58 - **架构设计**: 设计后端架构时 59 60 ### 0.3 触发机制 61 62 #### 0.3.1 调用时机 63 - **实时触发**: PHP 文件操作时立即触发 64 - **延迟触发**: 复杂目录操作时延迟1秒触发 65 - **批量触发**: 批量文件操作时合并触发 66 67 #### 0.3.2 调用频率 68 - 文件浏览: 最多每10秒触发一次 69 - 文件操作: 最多每5秒触发一次 70 - 命令执行: 最多每3秒触发一次 71 72 #### 0.3.3 调用优先级 73 - **优先级等级**: 中等优先级 (3/5) 74 - **竞争处理**: 当多个技能同时触发时 75 - 最高优先级: 系统核心技能 76 - 高优先级: 代码结构技能 77 - 中等优先级: PHP 后端技能、前端技能、移动端技能 78 - 低优先级: 辅助工具技能 79 - **触发限制**: 仅在 PHP 后端相关操作时被触发,不影响其他技能的正常使用 80 81 ### 0.4 触发后行为 82 83 #### 0.4.1 自动分析 84 - **代码分析**: 分析 PHP 代码结构和质量 85 - **依赖分析**: 分析代码依赖关系 86 - **性能分析**: 分析代码性能瓶颈 87 - **安全分析**: 分析代码安全隐患 88 89 #### 0.4.2 自动展示 90 - **目录结构**: 展示 PHP 后端目录结构 91 - **代码说明**: 展示核心代码功能说明 92 - **技术栈**: 展示后端技术栈 93 - **开发规范**: 展示 PHP 开发规范 94 95 #### 0.4.3 自动建议 96 - **开发建议**: 提供 PHP 后端开发建议 97 - **优化建议**: 提供性能优化建议 98 - **规范建议**: 提供代码规范遵循建议 99 - **安全建议**: 提供安全防护建议 100 101 ## 1. PHP 后端架构 102 103 ### 1.1 整体架构 104 - **框架**: ThinkPHP 6.x 105 - **架构模式**: MVC + Service + DAO 分层架构 106 - **设计模式**: 单例、工厂、依赖注入等 107 - **数据库**: MySQL 5.7~8.0 108 - **缓存**: Redis (推荐) 109 - **队列**: ThinkPHP 内置队列 110 111 ### 1.2 技术栈 112 - **PHP**: 7.1~7.4 113 - **ThinkPHP**: 6.x 114 - **MySQL**: 5.7+ 115 - **Redis**: 5.0+ 116 - **Composer**: 依赖管理 117 - **Workerman**: 长连接服务 118 119 ### 1.3 目录结构 120 121 #### 1.3.1 核心目录 122 ``` 123 app/ 124 ├── api/ # API 接口层 125 ├── controller/ # 控制器层 126 ├── dao/ # 数据访问层 127 ├── model/ # 模型层 128 ├── services/ # 业务逻辑层 129 ├── event/ # 事件处理层 130 ├── middleware/ # 中间件层 131 └── validate/ # 数据验证层 132 ``` 133 134 #### 1.3.2 配置目录 135 ``` 136 config/ 137 ├── app.php # 应用配置 138 ├── database.php # 数据库配置 139 ├── route.php # 路由配置 140 ├── cache.php # 缓存配置 141 └── queue.php # 队列配置 142 ``` 143 144 #### 1.3.3 核心库目录 145 ``` 146 crmeb/ 147 ├── basic/ # 基础类库 148 ├── exception/ # 异常处理 149 └── services/ # 核心服务 150 ``` 151 152 ## 2. 核心模块 153 154 ### 2.1 控制器模块 155 - **功能**: 处理 HTTP 请求,路由分发,响应客户端 156 - **特点**: RESTful 风格,分层清晰,参数验证 157 - **关键文件**: `BaseController.php` (控制器基类) 158 - **示例代码**: 159 ```php 160 <?php 161 namespace app\controller; 162 163 use app\BaseController; 164 165 class UserController extends BaseController 166 { 167 public function index() 168 { 169 return $this->success('获取用户列表成功', $data); 170 } 171 } 172 ``` 173 174 ### 2.2 服务模块 175 - **功能**: 实现核心业务逻辑,封装业务规则 176 - **特点**: 业务逻辑集中,可复用性高,易于测试 177 - **关键文件**: 各业务服务类 178 - **示例代码**: 179 ```php 180 <?php 181 namespace app\services; 182 183 use crmeb\basic\BaseServices; 184 185 class UserServices extends BaseServices 186 { 187 public function createUser($data) 188 { 189 // 业务逻辑实现 190 return $userId; 191 } 192 } 193 ``` 194 195 ### 2.3 数据访问模块 196 - **功能**: 封装数据库操作,提供数据访问方法 197 - **特点**: SQL 集中管理,防止 SQL 注入,提高安全性 198 - **关键文件**: 各数据访问对象类 199 - **示例代码**: 200 ```php 201 <?php 202 namespace app\dao; 203 204 use crmeb\basic\BaseDao; 205 206 class UserDao extends BaseDao 207 { 208 public function getUserById($id) 209 { 210 return $this->where('id', $id)->find(); 211 } 212 } 213 ``` 214 215 ### 2.4 模型模块 216 - **功能**: 定义数据模型,处理数据关系 217 - **特点**: ORM 映射,自动表结构,关联查询 218 - **关键文件**: `BaseModel.php` (模型基类) 219 - **示例代码**: 220 ```php 221 <?php 222 namespace app\model; 223 224 use crmeb\basic\BaseModel; 225 226 class User extends BaseModel 227 { 228 protected $table = 'user'; 229 protected $pk = 'id'; 230 } 231 ``` 232 233 ### 2.5 路由模块 234 - **功能**: 定义 URL 路由规则,分发请求 235 - **特点**: RESTful 风格,路由分组,中间件支持 236 - **关键文件**: `route/api.php`、`route/app.php` 237 - **示例代码**: 238 ```php 239 <?php 240 use think\facade\Route; 241 242 Route::get('user/:id', 'User/read'); 243 Route::post('user', 'User/save'); 244 Route::put('user/:id', 'User/update'); 245 Route::delete('user/:id', 'User/delete'); 246 ``` 247 248 ## 3. 开发规范 249 250 ### 3.1 代码规范 251 - **PHP 规范**: 遵循 PSR-2 命名规范 252 - **命名规范**: 253 - 类名: PascalCase 254 - 方法/变量: camelCase 255 - 常量: 全大写,下划线分隔 256 - 文件名: 与类名一致,PascalCase 257 - **代码缩进**: 4空格缩进,禁止制表符 258 - **注释规范**: 方法注释、类注释、关键逻辑注释 259 260 ### 3.2 目录规范 261 - **按功能模块组织**: 相同功能的代码放在同一目录 262 - **目录层次清晰**: 避免过深的目录嵌套 263 - **命名语义化**: 目录名应反映其功能 264 265 ### 3.3 数据库规范 266 - **表名**: 小写下划线分隔 267 - **主键**: 统一命名为 `id` 268 - **外键**: 格式 `表名_id` 269 - **时间字段**: `create_time`/`update_time` 270 - **状态字段**: `status`,默认值 0 271 272 ### 3.4 API 规范 273 - **RESTful 风格**: 使用标准 HTTP 方法 274 - **响应格式**: 统一 JSON 格式 275 - **错误处理**: 使用统一的错误码和错误信息 276 - **参数验证**: 严格的参数验证 277 278 ## 4. 最佳实践 279 280 ### 4.1 开发流程 281 1. **需求分析**: 明确功能需求和技术方案 282 2. **架构设计**: 设计模块结构和数据库结构 283 3. **代码实现**: 遵循开发规范编码 284 4. **测试验证**: 单元测试和功能测试 285 5. **代码审查**: 代码质量检查 286 6. **部署上线**: 构建和部署 287 288 ### 4.2 性能优化 289 - **数据库优化**: 索引优化,SQL 优化 290 - **缓存策略**: 合理使用 Redis 缓存 291 - **代码优化**: 减少循环嵌套,优化算法 292 - **请求优化**: 合并请求,减少 HTTP 调用 293 294 ### 4.3 安全防护 295 - **SQL 注入防护**: 使用参数绑定,避免直接拼接 SQL 296 - **XSS 防护**: 输入验证和输出编码 297 - **CSRF 防护**: 使用 Token 验证 298 - **权限控制**: 严格的权限验证机制 299 - **敏感信息保护**: 加密存储敏感信息 300 301 ### 4.4 代码复用 302 - **抽象公共逻辑**: 将公共逻辑抽象为服务或工具类 303 - **使用 Traits**: 复用代码片段 304 - **继承基类**: 继承基础类获得通用功能 305 - **依赖注入**: 提高代码可测试性和可维护性 306 307 ## 5. 常见问题 308 309 ### 5.1 性能问题 310 - **数据库查询慢**: 检查索引,优化 SQL 311 - **内存占用高**: 检查大数组,优化内存使用 312 - **响应时间长**: 检查业务逻辑,使用缓存 313 314 ### 5.2 安全问题 315 - **SQL 注入**: 使用参数绑定,避免直接拼接 SQL 316 - **XSS 攻击**: 对输入进行验证和过滤 317 - **CSRF 攻击**: 实现 CSRF Token 验证 318 - **权限绕过**: 严格检查权限,避免逻辑漏洞 319 320 ### 5.3 部署问题 321 - **环境配置**: 确保生产环境配置正确 322 - **依赖管理**: 使用 Composer 管理依赖 323 - **缓存清理**: 部署后清理缓存 324 - **日志管理**: 配置合理的日志级别 325 326 ### 5.4 代码问题 327 - **命名不规范**: 遵循命名规范 328 - **注释不足**: 添加必要的注释 329 - **逻辑混乱**: 重构代码,提高可读性 330 - **重复代码**: 抽象公共逻辑,减少重复 331 332 ## 6. 开发工具推荐 333 334 ### 6.1 IDE 推荐 335 - **PHPStorm**: 专业的 PHP IDE,功能强大 336 - **VS Code**: 轻量级编辑器,丰富的插件 337 - **Sublime Text**: 快速的代码编辑器 338 339 ### 6.2 插件推荐 340 - **PHP Inspections**: PHP 代码检查插件 341 - **Laravel Idea**: Laravel 开发插件 (如需) 342 - **GitLens**: Git 增强插件 343 - **Debugger for Chrome**: 浏览器调试插件 344 345 ### 6.3 工具推荐 346 - **Composer**: PHP 依赖管理工具 347 - **PHPUnit**: PHP 单元测试框架 348 - **Postman**: API 测试工具 349 - **MySQL Workbench**: 数据库设计工具 350 - **Redis Desktop Manager**: Redis 管理工具 351 352 ## 7. 参考资源 353 354 ### 7.1 官方文档 355 - [ThinkPHP 6 官方文档](https://www.kancloud.cn/manual/thinkphp6_0) 356 - [PHP 官方文档](https://www.php.net/docs.php) 357 - [MySQL 官方文档](https://dev.mysql.com/doc/) 358 - [Redis 官方文档](https://redis.io/documentation) 359 360 ### 7.2 学习资源 361 - [Laravel 学院](https://learnku.com/laravel) 362 - [PHP 中文网](https://www.php.cn/) 363 - [ThinkPHP 社区](https://www.thinkphp.cn/) 364 - [Stack Overflow](https://stackoverflow.com/) 365 366 ### 7.3 代码规范 367 - [PSR 标准](https://www.php-fig.org/psr/) 368 - [ThinkPHP 代码规范](https://www.thinkphp.cn/doc) 369 - [PHP 最佳实践](https://phpbestpractices.org/) 370 371 ### 7.4 其他资源 372 - 接口开发流程文档 ./references/api_create.md 373 - 代码规范文档 ./references/code_style.md 374 - 数据库设计文档 ./references/db_design.md 375 - 项目部署文档 ./references/deploy.md 376 - 目录结构文档 ./references/directory_structure.md 377 - 错误码文档 ./references/error_code.md 378 - 系统配置文档 ./references/system_config.md 379 - 接口请求流程文档 ./references/api_flow.md 380
crmeb/crmeb/tree/main/.trae/skills/php-api commit 321fa648d5
Frequently asked questions How do I install the PHP后端开发说明 skill? Run npx skillmds@latest add crmeb/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后端开发skill说明 It is listed under Integrations & APIs 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后端开发说明? crmeb (@crmeb) published this skill. Their other Agent Skills are listed on their SkillMD profile.