mirror of
https://gitee.com/johng/gf
synced 2026-06-07 02:12:11 +08:00
48c28788855b32c1d5f21608dd1b26a4e2496977
安装
go get -u gitee.com/johng/gf
使用
import "gitee.com/johng/gf/g/xxx/xxx"
说明
- 框架说明
- Web服务开发
- HTTPServer
- Web Server
- 多域名支持
- MVC开发模式
- Controller
- Model
- View
- 服务注册
- 控制器注册
- REST控制器
- 执行对象注册
- 回调函数注册
- Cookie
- Session
- 路由控制
- 配置管理
- 单例管理
- 数据校验
- 模板引擎
- 数据库操作
- HTTPServer
- 网络服务开发
- TCPServer
- UDPServer
- 功能模块设计
- 缓存模块
- 日志模块
- 时间模块
- 命令行模块
- 环境变量模块
- 文件管理模块
- 并发安全容器
- 通用编码模块
- 其他模块简介
框架介绍
gf(Go Frame)是一款为Web服务及网络服务开发设计的,轻量级的Go语言开发框架。 gf框架基于模块化设计,实现了通用的HTTP/TCP/UDP Server,并实现了Web服务开发的相关核心组件, 包括:MVC模式、Cookie、Session、模板引擎、路由控制、配置管理、数据校验、数据库操作等等, 并且提供了数十个自行研发的实用模块,包括:缓存模块、日志模块、时间模块、命令行模块、环境变量模块、并发安全容器等等。
源码结构
.
├── g 【框架目录】
│ ├── container 【常用数据结构】
│ │ ├── gbtree B+树
│ │ ├── glist 并发安全的双向链表
│ │ ├── gmap 并发安全的哈希表
│ │ └── gset 并发安全的集合
│ │
│ ├── database 【数据库操作】
│ │ └── gdb 通用关系型数据库操作封装(目前仅支持MySQL、PostgreSQL)
│ │
│ ├── encoding 【数据编码】
│ │ ├── gbase64 BASE64
│ │ ├── gbinary 二进制操作
│ │ ├── gcompress 数据压缩
│ │ ├── gcrc32 CRC32
│ │ ├── ghash 常用哈希函数
│ │ ├── ghtml HTML编码
│ │ ├── gjson JSON
│ │ ├── gmd5 MD5
│ │ ├── gsha1 SHA1
│ │ └── gurl URL
│ │
│ ├── frame 【开发框架】
│ │ ├── gcfg 通用配置管理
│ │ ├── gins 单例对象管理
│ │ └── gmvc MVC模式封装基类
│ │
│ ├── net 【网络通信】
│ │ ├── ghttp 强大的HTTP客户端及服务端
│ │ ├── gipv4 IPv4操作
│ │ ├── gipv6 IPv6操作
│ │ ├── grouter 路由管理
│ │ ├── gscanner 端口扫描
│ │ ├── gsmtp SMTP邮件管理
│ │ ├── gtcp TCP服务端
│ │ └── gudp UDP服务端
│ │
│ ├── os 【系统管理】
│ │ ├── gcache 缓存管理
│ │ ├── gcmd 命令行控制
│ │ ├── genv 环境变量
│ │ ├── gfile 文件管理
│ │ ├── gfilepool 文件指针池
│ │ ├── gfilespace 文件碎片管理
│ │ ├── glog 日志管理
│ │ ├── gmmap MMAP文件内存映射
│ │ ├── gtime 时间管理
│ │ └── gview 视图管理(通用的模板管理对象,独立于MVC模块)
│ │
│ └── util 【常用工具】
│ ├── gconv 类型转换
│ ├── grand 随机数
│ ├── gregx 正则表达式
│ ├── gvalid 表单校验
│ └── gutil 其他工具
│
├── geg 【框架示例】
├── vendor 【第三方包】
└── version.go 【版本信息】
配置
- 默认读取文件运行目录的config.json文件;
- 支持多配置文件管理,默认配置文件目录为当前运行目录;
- config.json配置文件说明:
{
"viewpath" : "视图文件存放路径",
"routings" : {
"dispatch" : {
"解析匹配规则1" : "解析替换规则1",
"解析匹配规则2" : "解析替换规则2"
},
"patch" : {
"打包匹配规则1" : "打包替换规则1",
"打包匹配规则2" : "打包替换规则2"
}
},
"database" : {
"数据库分组名称" : [
{
"host" : "地址",
"port" : "端口",
"user" : "账号",
"pass" : "密码",
"name" : "数据库名称",
"type" : "数据库类型(mysql|pgsql)",
"role" : "数据库角色(master|slave)",
"charset" : "字符编码",
"priority" : "数据库优先级(负载均衡处理)"
}
]
}
}
- config.json示例文件:
{
"viewpath" : "/home/www/templates/",
"routines" : {
"dispatch" : {
"\/list\/page\/(\d+)[\/\?]*" : "/list?page=$1&"
}
},
"database" : {
"default" : [
{
"host" : "127.0.0.1",
"port" : "3306",
"user" : "root",
"pass" : "123456",
"name" : "test",
"type" : "mysql",
"role" : "master",
"charset" : "utf8",
"priority" : "100"
},
{
"host" : "127.0.0.1",
"port" : "3306",
"user" : "root",
"pass" : "123456",
"name" : "test",
"type" : "mysql",
"role" : "slave",
"charset" : "utf8",
"priority" : "100"
}
],
"ucenter" : [
{
"host" : "127.0.0.1",
"port" : "3306",
"user" : "root",
"pass" : "123456",
"name" : "ucenter",
"type" : "mysql",
"role" : "master",
"charset" : "utf8",
"priority" : "100"
}
]
}
}
Languages
GO
100%