gf/README.MD

185 lines
6.7 KiB
Plaintext
Raw Normal View History

## 安装
2017-11-22 16:39:21 +08:00
```
2017-11-23 10:29:50 +08:00
go get -u gitee.com/johng/gf
2017-12-31 14:44:48 +08:00
```
2017-11-22 16:39:21 +08:00
## 使用
2017-11-23 10:23:23 +08:00
```go
import "gitee.com/johng/gf/g/xxx/xxx"
2017-11-23 10:23:23 +08:00
```
## 说明
2017-12-31 14:44:48 +08:00
1. [框架入门](#框架介绍)
2017-12-31 14:47:58 +08:00
- [框架介绍](#框架介绍)
- [源码结构](#源码结构)
2017-12-31 14:51:44 +08:00
1. [Web服务开发](;)
2017-12-31 14:47:58 +08:00
- [HTTPServer]()
- [Web Server]()
- [多域名支持]()
- [MVC开发模式]()
- [Controller]()
- [Model]()
- [View]()
- [服务注册]()
- [控制器注册]()
- [REST控制器]()
- [执行对象注册]()
- [回调函数注册]()
- [Cookie]()
- [Session]()
- [路由控制]()
- [配置管理]()
- [单例管理]()
- [数据校验]()
- [模板引擎]()
- [数据库操作]()
2017-12-31 14:44:48 +08:00
1. [网络服务开发]()
2017-12-31 14:47:58 +08:00
- [TCPServer]()
- [UDPServer]()
2017-12-31 14:44:48 +08:00
1. [功能模块设计]()
2017-12-31 14:47:58 +08:00
- [缓存模块]()
- [日志模块]()
- [时间模块]()
- [命令行模块]()
- [环境变量模块]()
- [文件管理模块]()
- [并发安全容器]()
- [通用编码模块]()
- [其他模块简介]()
2017-12-31 14:44:48 +08:00
### 框架介绍
### 源码结构
.
├── g 【框架目录】
2017-12-28 15:21:25 +08:00
│   ├── container 【常用数据结构】
│   │   ├── gbtree B+树
│   │   ├── glist 并发安全的双向链表
│   │   ├── gmap 并发安全的哈希表
│   │   └── gset 并发安全的集合
│   │  
│   ├── database 【数据库操作】
2017-12-20 12:05:36 +08:00
│   │   └── gdb 通用关系型数据库操作封装(目前仅支持MySQL、PostgreSQL)
│   │  
│   ├── encoding 【数据编码】
│   │   ├── gbase64 BASE64
│   │   ├── gbinary 二进制操作
│   │   ├── gcompress 数据压缩
│   │   ├── gcrc32 CRC32
│   │   ├── ghash 常用哈希函数
2017-12-29 17:07:03 +08:00
│   │   ├── ghtml HTML编码
│   │   ├── gjson JSON
│   │   ├── gmd5 MD5
│   │   ├── gsha1 SHA1
│   │   └── gurl URL
│   │  
2017-12-20 12:05:36 +08:00
│   ├── frame 【开发框架】
│   │   ├── gcfg 通用配置管理
│   │   ├── gins 单例对象管理
2017-12-20 12:05:36 +08:00
│   │   └── gmvc MVC模式封装基类
│   │  
│   ├── net 【网络通信】
2017-12-31 12:16:32 +08:00
│   │   ├── ghttp 强大的HTTP客户端及服务端
2017-12-29 17:07:03 +08:00
│   │   ├── gipv4 IPv4操作
│   │   ├── gipv6 IPv6操作
│   │   ├── grouter 路由管理
│   │   ├── gscanner 端口扫描
2017-12-07 09:58:35 +08:00
│   │   ├── gsmtp SMTP邮件管理
2017-12-08 10:16:40 +08:00
│   │   ├── gtcp TCP服务端
│   │   └── gudp UDP服务端
│   │  
│   ├── os 【系统管理】
2017-12-29 17:07:03 +08:00
│   │   ├── gcache 缓存管理
│   │   ├── gcmd 命令行控制
2017-12-29 17:07:03 +08:00
│   │   ├── genv 环境变量
│   │   ├── gfile 文件管理
│   │   ├── gfilepool 文件指针池
│   │   ├── gfilespace 文件碎片管理
│   │   ├── glog 日志管理
2017-12-07 10:42:37 +08:00
│   │ ├── gmmap MMAP文件内存映射
2017-12-20 12:05:36 +08:00
│   │   ├── gtime 时间管理
│   │   └── gview 视图管理(通用的模板管理对象独立于MVC模块)
│   │  
│   └── util 【常用工具】
2017-12-31 12:16:32 +08:00
│   ├── gconv 类型转换
│   ├── grand 随机数
│   ├── gregx 正则表达式
2017-12-29 17:01:48 +08:00
│   ├── gvalid 表单校验
│   └── gutil 其他工具
│  
├── geg 【框架示例】
├── vendor 【第三方包】
└── version.go 【版本信息】
## 配置
1. 默认读取文件运行目录的config.json文件
1. 支持多配置文件管理,默认配置文件目录为当前运行目录;
2017-12-20 12:05:36 +08:00
1. config.json配置文件说明
```json
{
"viewpath" : "视图文件存放路径",
"database" : {
"数据库分组名称" : [
{
"host" : "地址",
"port" : "端口",
"user" : "账号",
"pass" : "密码",
"name" : "数据库名称",
"type" : "数据库类型(mysql|pgsql)",
"role" : "数据库角色(master|slave)",
"charset" : "字符编码",
"priority" : "数据库优先级(负载均衡处理)"
}
]
}
}
```
1. config.json示例文件
```json
{
"viewpath" : "/home/john/Workspace/Go/gitee.com/johng/gf/geg/frame/mvc/view",
"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"
}
]
}
}
```