提交 c811a592 编写于 作者: lzc828's avatar lzc828

readme

上级 d299d9db
> 在使用很多框架的时候一直感觉不是足够简单,看基于swoole的那些框架设计的更复杂。
> 于是设计框架 - one
> 这是一个极简灵活的[常驻内存]框架,可运行在apache/php-fpm或者swoole下。
> 风格统一,没有各种让开发者费解的东西,在apache/php-fpm和普通的mvc框架没有区别,不用改任何代码可直接运行在swoole异步、协程的环境下,即使你是新手也能轻松上手。
> 如果你使用过`thinkPHP`,`laravel`,`yii`花5分钟就能熟练掌握。
> 如果你要一探究竟,框架代码量非常少,各模块是独立的,适合二次开发和扩展
# One - 一个极简的框架
[文档地址](https://www.kancloud.cn/vic-one/php-one/826876)
[使用列子-DEMO](https://github.com/lizhichao/one-demo)
## 主要功能特点
QQ交流群: 731475644
1. 独立的路由模块
- 支持中间件
- 支持路由分组
- 支持restful
- 支持在http,webSocket,tcp...下运行
- 除restful外可自定义任何方法
- 接口缓存(可对整个接口缓存 中间件依然会执行)
- 采用hashMap储存路由信息,超高的解析性能。比一般的正则表达式解析至少高出一个数量级,路由信息大小不影响解析速度。
2. orm(数据库模型)
- 自动sql注入过滤
- 自动过滤非表结构的字段
- 各种sql链式操作,IDE友好提示
- 数据表关系映射(hasOne,hasMany)
- 自动化缓存(保持与数据库同步更新)
- sql日志模板(可为后期优化提供全面的分析数据)
3. 日志
- 自动记录每条日志产生的文件名和行号
- 自动增加request_id全程跟踪
- 可高度自定义
4. 缓存(redis,file)
- 支持tag
### 特点:
5. session(redis,file)
> 以下特点仅在swoole运行下才有
- 框架本身消耗非常少,在`apache/php-fpm`下框架消耗时间保持在`1ms`左右。
- 灵活的路由和中间件,支持在各种协议运行`tcp``http``websocket`...
- 灵活的orm,包含常用的`curd`和关系处理`hasOne,hasMany`以及自动化缓存机制可让项目绝大部分流量走缓存,并保持与数据库同步自动更新
- 框架内可同时处理`tcp``http``websocket`...多种协议请求,可轻松实现各协议消息互通
- `globalData` 内存共享支持任意层级的原子操作,数据结构可自己扩展,可轻松实现分布式内存共享。
- 自动使用数据库连接池(`apache/php-fpm`下一个连接)
- `trance_id|request_id` 方便bug追踪调用链追踪
6. 数据库连接池
- 全程自动化完成(获取连接对象,放回连接对象到池中)。当代码运行在swoole下时自动使用连接池.
- 列外:
- 你手动pop出一个pdo原生对象,需要自己push放回池中
7. redis连接池
- 全程自动化完成(获取连接对象,放回连接对象到池中)
- 列外:
- 你手动pop出一个Redis原生对象,需要自己push放回池中
### 安装
8. 常驻内存服务器
- http服务器
- webSocket服务器
- tcp服务器
- ...
- 各种混合协议通讯
- 提供一对多关系绑定($user_id -> $fd, $group_id -> $user_id,...)
```shell
composer create-project lizhichao/one-app
```
9. 服务器之间内存共享
- 所有操作均为原子操作(不用考虑并发数据不一致问题)
- 性能和redis相当
- 支持任意层级数据操作(set a.b.c.d 1)
- 自己可以轻松扩展
#### hello word
10. 后台进程Task任务处理
```php
// 添加路由 App/Config/router.php
Router::get('/', \App\Controllers\IndexController::class . '@index');
// 控制器代码 App/Controllers/IndexController.php
class IndexController extends Controller
{
public function index()
{
return 'hello word';
}
}
[文档地址](https://www.kancloud.cn/vic-one/php-one/826876)
// Apache/fpm下启动 设置 App/public 为根目录
[使用列子-DEMO](https://github.com/lizhichao/one-demo)
// 常驻内存启动 php App/swoole.php
QQ交流群: 731475644
// 访问 http://{host}/hello
## 安装
```shell
composer create-project lizhichao/one-app
```
### demo
[one-demo](https://github.com/lizhichao/one-demo)
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册