2018-01-04 22:38:47 +08:00
2018-01-04 22:38:47 +08:00
dev
2017-07-04 18:31:39 +08:00
2017-09-06 16:39:19 +08:00
2017-12-29 16:58:47 +08:00

安装

go get -u gitee.com/johng/gf

使用

import "gitee.com/johng/gf/g/xxx/xxx"

说明

  1. 框架说明
  2. Web服务开发
    • HTTPServer
      • Web Server
      • 多域名支持
    • MVC开发模式
      • Controller
      • Model
      • View
    • 服务注册
      • 控制器注册
      • REST控制器
      • 执行对象注册
      • 回调函数注册
    • Cookie
    • Session
    • 路由控制
    • 配置管理
    • 单例管理
    • 数据校验
    • 模板引擎
    • 数据库操作
  3. 网络服务开发
    • TCPServer
    • UDPServer
  4. 功能模块设计
    • 缓存模块
    • 日志模块
    • 时间模块
    • 命令行模块
    • 环境变量模块
    • 文件管理模块
    • 并发安全容器
    • 通用编码模块
    • 其他模块简介

框架介绍

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       【版本信息】

配置

  1. 默认读取文件运行目录的config.json文件
  2. 支持多配置文件管理,默认配置文件目录为当前运行目录;
  3. 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" : "数据库优先级(负载均衡处理)"
            }
        ]
    }
}
  1. config.json示例文件
{
    "viewpath"   : "/home/www/templates/",
    "routings"   : {
        "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"
            }
        ]
    }
}
Description
No description provided
Readme MIT 34 MiB
Languages
GO 100%