GoFrame v1.2.11发布,Go 应用开发框架

johng · 2018-11-26 09:37:49 · 4121 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2018-11-26 09:37:49 的主题,其中的信息可能已经有所发展或是发生改变。

新特性

  1. ORM新增对SQLServerOracle的支持(https://gfer.me/database/orm/database);
  2. 完成gvalid模块校验结果的顺序特性(https://gfer.me/util/gvalid/checkmap);
  3. 改进ghttp.Request.Exit,使得调用该方法时立即退出业务执行,开发者无需调用Exit方法时再使用return返回(https://gfer.me/net/ghttp/service/object);
  4. 模板引擎新增若干内置函数:text/html/htmldecode/url/urldecode/date/compare/substr/strlimit/hidestr/highlight/toupper/tolower/nl2br (https://gfer.me/os/gview/funcs);
  5. 模板引擎新增内置变量Config (https://gfer.me/os/gview/vars);
  6. 改进gconv.Struct转换默认规则,支持不区分大小写的键名与属性名称匹配;
  7. gform配置文件支持linkinfo自定义数据库连接字段(https://gfer.me/database/orm/config);
  8. gfsnotify模块增加对特定回调的取消注册功能(https://gfer.me/os/gfsnotify/index);

新功能

  1. 改进ghttp.Request,增加SetParam/GetParam请求流程自定义变量设置/获取方法,用于在请求流程中的回调函数共享变量(https://gfer.me/net/ghttp/request);
  2. 改进ghttp.Response,增加ServeFileDownload方法,用于WebServer引导客户端下载文件(https://gfer.me/net/ghttp/response);
  3. gvar模块新增gvar.VarRead只读接口,用于控制对外只暴露数据读取功能;
  4. 增加g.Throw抛异常方法,g.TryCatch异常捕获方法封装;
  5. 改进gcron模块,增加自定义的Cron管理对象,增加New/Start/Stop方法;

功能改进

  1. WebServer添加RouterCacheExpire配置参数,用于设置路由检索缓存过期时间;
  2. WebServer允许同一HOOK事件被多次绑定注册,先注册的回调函数优先级更高(https://gfer.me/net/ghttp/service/hook);
  3. 当前工作目录为系统临时目录时,gcfg/gview/ghttp模块默认不添加工作目录到搜索路径;
  4. 改进WebSocket默认支持跨域请求(https://gfer.me/net/ghttp/websocket);
  5. 改进gtime.Format支持中文;
  6. 改进gfsnotify,支持编辑器对文件非执行标准编辑时(RENAME+CHMOD)的热更新问题;
  7. 改进gtype.Set方法,增加Set原子操作返回旧的变量值;
  8. gfile.ScanDir增加支持pattern多个文件模式匹配,使用','符号分隔多个匹配模式;
  9. gcfg模块增加获取配置变量为*gvar.Var;
  10. gstr模块增加对中文截取方法;
  11. 改进gtime.StrToTime对常用时间格式匹配模式,新增gtime.ParseTimeFromContent方法;
  12. 修改配置管理、模板引擎、调试模式的环境变量名称为大写下划线标准格式;
  13. 改进grand模块随机数生成设计,底层使用crypto/rand+缓冲区实现高速的随机数生成(https://gfer.me/util/grand/index);

问题修复

  1. 修复gspath模块在windows下搜索失效问题;
  2. 修复gspath模块Search时带有indexFiles的检索问题;
  3. bug fix INZS1(https://gitee.com/johng/gf/issues/INZS1);
  4. 修复gproc.ShellRun在windows下的执行问题;

GF(Go Frame)是一款模块化、松耦合、轻量级、高性能的Go应用开发框架。支持热重启、热更新、多域名、多端口、多服务、HTTP/HTTPS、动态路由等特性 ,并提供了Web服务开发的系列核心组件,如:Router、Cookie、Session、服务注册、配置管理、模板引擎、数据校验、分页管理、数据库ORM等等等等, 并且提供了数十个内置核心开发模块集,如:缓存、日志、时间、命令行、二进制、文件锁、内存锁、对象池、连接池、数据编码、进程管理、进程通信、文件监控、定时任务、TCP/UDP组件、 并发安全容器等等等等等等。

开源项目地址(仓库保持实时同步): GiteeGithub。 使用中有任何问题/建议,欢迎加入技术QQ群交流:116707870。 如有优秀的框架使用案例,欢迎联系作者将地址展示到项目库中,您的牛逼将被世人所瞻仰。

安装

go get -u gitee.com/johng/gf

限制

golang版本 >= 1.9.2

架构

特点

  1. 轻量级、高性能,模块化、松耦合设计,丰富的开发模块;
  2. 热重启、热更新特性,并支持Web界面及命令行管理接口;
  3. 专业的技术交流群,完善的开发文档及示例代码,良好的中文化支持;
  4. 支持多种形式的服务注册特性,灵活高效的路由控制管理;
  5. 支持服务事件回调注册功能,可供选择的pprof性能分析模块;
  6. 支持配置文件及模板文件的自动检测更新机制,即修改即生效;
  7. 支持自定义日期时间格式的时间模块,类似PHP日期时间格式化;
  8. 强大的数据/表单校验模块,支持常用的40种及自定义校验规则;
  9. 强大的网络通信TCP/UDP组件,并提供TCP连接池特性,简便高效;
  10. 提供了对基本数据类型的并发安全封装,提供了常用的数据结构容器;
  11. 支持Go变量/Json/Xml/Yml/Toml任意数据格式之间的相互转换及创建;
  12. 强大的数据库ORM,支持应用层级的集群管理、读写分离、负载均衡,查询缓存、方法及链式ORM操作;
  13. 更多特点请查阅框架手册源码

文档

https://gfer.me

使用

package main

import (
    "gitee.com/johng/gf/g"
    "gitee.com/johng/gf/g/net/ghttp"
)

func main() {
    s := g.Server()
    s.BindHandler("/", func(r *ghttp.Request) {
        r.Response.Write("Hello World")
    })
    s.Run()
}

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

4121 次点击  
加入收藏 微博
1 回复  |  直到 2018-12-06 17:54:27
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传