Files
im/.trae/skills/webman-openim-admin/SKILL.md
T

232 lines
5.0 KiB
Markdown
Raw Normal View History

2026-04-10 13:31:15 +08:00
---
name: "webman-openim-admin"
description: "专门针对基于webman的openim管理项目,使用了think-cache、think-orm、think-template、redis-queue、webman/event、tinywan/validate等依赖。用于项目的开发、维护和问题排查。"
---
# Webman OpenIM Admin 技能
## 项目概述
本技能专门针对基于 webman 框架开发的 OpenIM 管理项目,该项目使用了以下核心依赖:
- **think-cache**: 缓存管理
- **think-orm**: 数据库 ORM 框架
- **think-template**: 模板引擎
- **redis-queue**: Redis 队列管理
- **webman/event**: 事件系统
- **tinywan/validate**: 数据验证
## 功能特性
### 1. 项目结构分析
- 分析项目目录结构
- 识别核心模块和文件
- 理解依赖关系
### 2. 代码开发与维护
- 基于现有代码风格和模式进行开发
- 提供符合项目规范的代码建议
- 帮助排查和修复常见问题
### 3. 依赖管理
- 分析 composer.json 配置
- 提供依赖版本建议
- 处理依赖冲突问题
### 4. 数据库操作
- 基于 think-orm 的数据库操作指导
- 模型定义和关系映射
- 数据库迁移和种子数据管理
### 5. 缓存策略
- 基于 think-cache 的缓存配置和使用
- 缓存优化建议
- 缓存一致性管理
### 6. 队列管理
- redis-queue 的配置和使用
- 队列任务的创建和监控
- 队列性能优化
### 7. 事件系统
- webman/event 的配置和使用
- 事件监听和触发
- 事件驱动架构设计
### 8. 数据验证
- tinywan/validate 的配置和使用
- 表单验证规则定义
- 自定义验证规则开发
## 触发条件
当用户需要:
- 了解项目结构和依赖
- 开发新功能或修改现有功能
- 排查项目中的问题
- 优化项目性能
- 配置或调整项目依赖
- 进行数据库相关操作
- 实现缓存策略
- 管理队列任务
- 使用事件系统
- 进行数据验证
## 使用示例
### 示例 1: 分析项目结构
```bash
# 查看项目目录结构
ls -la
# 查看 composer.json 了解依赖
cat composer.json
```
### 示例 2: 数据库操作
```php
// 使用 think-orm 进行数据库查询
use think\Model;
class User extends Model
{
protected $table = 'user';
}
// 查询用户列表
$users = User::where('status', 1)->select();
```
### 示例 3: 缓存使用
```php
// 使用 think-cache
use think\facade\Cache;
// 设置缓存
Cache::set('key', 'value', 3600);
// 获取缓存
$value = Cache::get('key');
```
### 示例 4: 队列任务
```php
// 使用 redis-queue
use support\Queue;
// 推送任务
Queue::push('App\\Jobs\\SendEmail', ['email' => 'user@example.com']);
```
### 示例 5: 事件监听
```php
// 使用 webman/event
use support\Event;
// 监听事件
Event::listen('user.registered', function ($user) {
// 处理用户注册事件
});
// 触发事件
Event::trigger('user.registered', $user);
```
### 示例 6: 数据验证
```php
// 使用 tinywan/validate
use Tinywan\Validate\Validate;
$validate = new Validate();
$validate->rule([
'name' => 'require|max:25',
'email' => 'require|email',
]);
if (!$validate->check($data)) {
return $validate->getError();
}
```
## 项目配置建议
1. **composer.json** 配置:
- 保持依赖版本的稳定性
- 定期更新依赖以获取安全补丁
2. **数据库配置**
- 优化数据库连接池设置
- 合理使用索引
- 定期备份数据库
3. **缓存配置**
- 根据业务场景选择合适的缓存策略
- 设置合理的缓存过期时间
- 考虑缓存预热机制
4. **队列配置**
- 合理设置队列 worker 数量
- 监控队列任务执行状态
- 实现失败重试机制
5. **性能优化**
- 启用 OPcache
- 优化数据库查询
- 使用合适的缓存策略
- 合理设计事件系统
## 常见问题与解决方案
1. **依赖冲突**
- 检查 composer.json 中的版本约束
- 使用 `composer update` 解决版本冲突
2. **数据库连接问题**
- 检查数据库配置文件
- 确认数据库服务是否正常运行
3. **缓存失效**
- 检查缓存配置
- 确认缓存服务是否正常
4. **队列任务失败**
- 检查队列配置
- 查看任务执行日志
- 实现失败重试机制
5. **事件不触发**
- 检查事件监听注册
- 确认事件触发代码
6. **验证失败**
- 检查验证规则
- 确认输入数据格式
## 最佳实践
1. **代码组织**
- 遵循 PSR 代码规范
- 合理使用命名空间
- 保持代码结构清晰
2. **安全性**
- 防止 SQL 注入
- 防止 XSS 攻击
- 保护敏感信息
3. **可维护性**
- 编写清晰的注释
- 使用一致的代码风格
- 遵循设计模式
4. **性能**
- 优化数据库查询
- 合理使用缓存
- 减少不必要的计算
5. **扩展性**
- 采用模块化设计
- 依赖注入
- 接口分离
本技能旨在帮助开发者更高效地开发和维护基于 webman 的 OpenIM 管理项目,提供专业的技术支持和最佳实践建议。