Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDocCN
one
提交
c811a592
O
one
项目概览
OpenDocCN
/
one
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
O
one
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
c811a592
编写于
11月 19, 2018
作者:
lzc828
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
readme
上级
d299d9db
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
59 addition
and
39 deletion
+59
-39
README.md
README.md
+59
-39
未找到文件。
README.md
浏览文件 @
c811a592
> 在使用很多框架的时候一直感觉不是足够简单,看基于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.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录