idrunk/dce-app
使用DCE初始化的项目
dev-master
2021-03-28 11:43 UTC
Requires
- idrunk/dce: @stable
This package is auto-updated.
Last update: 2024-09-21 21:14:34 UTC
README
Dce是一款基于PHP8开发的网络编程框架,支持传统的Cgi式Web编程和命令行工具编程,也支持Swoole下的常驻内存式Web编程与长连接服务器编程。同时,它设计了一套通用的RCR架构来处理所有类型的网络编程,使你的应用项目保持清晰整洁,帮助你轻松编写出易于复用和维护的代码。
Dce还拥有许多特色功能,其中最为突出的是分库中间件,可以让你轻松实现分库查询。除此之外,还提供负载均衡连接池、远程过程调用、ID生成器、并发锁、会话管理器等特色功能。这些功能依赖于Swoole,Dce的作者也强烈推荐你在Swoole环境下使用Dce,结合其多进程协程模式,可以充分发挥你的服务器性能。
当然,除了上述功能外,模型、校验器、缓存器、事件、查询器、活动记录等常规功能模块也是不可或缺的。
开始使用
获取
composer create-project idrunk/dce-app:@dev
取用例
composer create-project idrunk/dce-app:dev-sample dce-sample
使用命令行工具
执行一个空命令
./dce # 或者在windows下执行: .\dce.bat # 将响应: # # 你正在cli模式以空路径请求Dce接口
在Swoole的Linux下启动Websocket服务器
dce websocket start # 将响应 # Websocket server started with 0.0.0.0:20461.
JS连接Websocket服务
const ws = new WebSocket('ws://127.0.0.1:20461'); ws.onopen = () => ws.send(''); ws.onmessage = msg => console.log(msg.data); // 若连接成功,将在控制台打印出下述消息 /* {"data":{"info":"恭喜!服务端收到了你的消息并给你作出了回应"}} */
使用Redis连接池
DceRedis的方法会自动根据环境判断是从实例池取还是新建连接
// 从连接池取一个Redis实例 $redis = DceRedis::get(); $redis->set('homepage', 'https://drunkce.com'); // 将实例归还连接池 DceRedis::put($redis);
数据库查询
进行分库查询需要配置分库规则,但查询方法与普通查询没有区别,因此以下示例也适用于分库查询。
// 查一条 $row = db('member')->where('mid', 4100001221441)->find(); // db方法为实例化查询器的快捷方法 // 简单联合查询 $list = db('member', 'm')->join('member_role', 'mr', 'mr.mid = m.mid')->select(); // 较复杂的嵌套条件查询 $list = db('member')->where([ ['is_deleted', 0], ['register_time', 'between', ['2021-01-01', '2021-01-31 23:59:59']], [ ['level', '>', 60], 'or', ['vip', '>', 1], ], ['not exists', raw('select 1 from member_banned where mid = member.mid')], ])->select();
通过上述简介,相信你对Dce已经有了初步的认识。Dce的玩法远不止这些,你可以点击这里继续深入了解。