2017-12-31 14:44:48 +08:00
2017-12-31 12:15:04 +08:00
2017-12-31 12:15:04 +08:00
dev
2017-07-04 18:31:39 +08:00
2017-09-06 16:39:19 +08:00
2017-12-31 14:44:48 +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. 框架入门
    1. 框架介绍
    2. 源码结构
  2. Web服务开发
    1. HTTPServer
      1. Web Server
      2. 多域名支持
    2. MVC开发模式
      1. Controller
      2. Model
      3. View
    3. 服务注册
      1. 控制器注册
      2. REST控制器
      3. 执行对象注册
      4. 回调函数注册
    4. Cookie
    5. Session
    6. 路由控制
    7. 配置管理
    8. 单例管理
    9. 数据校验
    10. 模板引擎
    11. 数据库操作
  3. 网络服务开发
    1. TCPServer
    2. UDPServer
  4. 功能模块设计
    1. 缓存模块
    2. 日志模块
    3. 时间模块
    4. 命令行模块
    5. 环境变量模块
    6. 文件管理模块
    7. 并发安全容器
    8. 通用编码模块
    9. 其他模块简介

框架介绍

源码结构

.
├── 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"   : "视图文件存放路径",
        "database"   : {
            "数据库分组名称" : [
                {
                    "host"     : "地址",
                    "port"     : "端口",
                    "user"     : "账号",
                    "pass"     : "密码",
                    "name"     : "数据库名称",
                    "type"     : "数据库类型(mysql|pgsql)",
                    "role"     : "数据库角色(master|slave)",
                    "charset"  : "字符编码",
                    "priority" : "数据库优先级(负载均衡处理)"
                }
            ]
        }
    }
    
  4. config.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"
                }
            ]
        }
    }
    
Description
No description provided
Readme MIT 34 MiB
Languages
GO 100%