payment1
This commit is contained in:
@@ -0,0 +1,232 @@
|
||||
---
|
||||
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 管理项目,提供专业的技术支持和最佳实践建议。
|
||||
Reference in New Issue
Block a user