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

johng · · 3941 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

## 新特性 1. `ORM`新增对`SQLServer`及`Oracle`的支持([https://gfer.me/database/orm/database](https://gfer.me/database/orm/database)); 1. 完成`gvalid`模块校验结果的顺序特性([https://gfer.me/util/gvalid/checkmap](https://gfer.me/util/gvalid/checkmap)); 1. 改进`ghttp.Request.Exit`,使得调用该方法时立即退出业务执行,开发者无需调用`Exit`方法时再使用`return`返回([https://gfer.me/net/ghttp/service/object](https://gfer.me/net/ghttp/service/object)); 1. 模板引擎新增若干内置函数:`text/html/htmldecode/url/urldecode/date/compare/substr/strlimit/hidestr/highlight/toupper/tolower/nl2br` ([https://gfer.me/os/gview/funcs](https://gfer.me/os/gview/funcs)); 1. 模板引擎新增内置变量`Config` ([https://gfer.me/os/gview/vars](https://gfer.me/os/gview/vars)); 1. 改进`gconv.Struct`转换默认规则,支持不区分大小写的键名与属性名称匹配; 1. `gform`配置文件支持`linkinfo`自定义数据库连接字段([https://gfer.me/database/orm/config](https://gfer.me/database/orm/config)); 1. `gfsnotify`模块增加对特定回调的取消注册功能([https://gfer.me/os/gfsnotify/index](https://gfer.me/os/gfsnotify/index)); ## 新功能 1. 改进`ghttp.Request`,增加`SetParam/GetParam`请求流程自定义变量设置/获取方法,用于在请求流程中的回调函数共享变量([https://gfer.me/net/ghttp/request](https://gfer.me/net/ghttp/request)); 1. 改进`ghttp.Response`,增加`ServeFileDownload`方法,用于WebServer引导客户端下载文件([https://gfer.me/net/ghttp/response](https://gfer.me/net/ghttp/response)); 1. `gvar`模块新增`gvar.VarRead`只读接口,用于控制对外只暴露数据读取功能; 1. 增加`g.Throw`抛异常方法,`g.TryCatch`异常捕获方法封装; 1. 改进`gcron`模块,增加自定义的Cron管理对象,增加`New/Start/Stop`方法; ## 功能改进 1. WebServer添加`RouterCacheExpire`配置参数,用于设置路由检索缓存过期时间; 1. WebServer允许同一`HOOK`事件被多次绑定注册,先注册的回调函数优先级更高([https://gfer.me/net/ghttp/service/hook](https://gfer.me/net/ghttp/service/hook)); 1. 当前工作目录为系统临时目录时,`gcfg`/`gview`/`ghttp`模块默认不添加工作目录到搜索路径; 1. 改进`WebSocket`默认支持跨域请求([https://gfer.me/net/ghttp/websocket](https://gfer.me/net/ghttp/websocket)); 1. 改进`gtime.Format`支持中文; 1. 改进`gfsnotify`,支持编辑器对文件非执行标准编辑时(RENAME+CHMOD)的热更新问题; 1. 改进`gtype.Set`方法,增加Set原子操作返回旧的变量值; 1. `gfile.ScanDir`增加支持`pattern`多个文件模式匹配,使用'`,`'符号分隔多个匹配模式; 1. `gcfg`模块增加获取配置变量为`*gvar.Var`; 1. `gstr`模块增加对中文截取方法; 1. 改进`gtime.StrToTime`对常用时间格式匹配模式,新增`gtime.ParseTimeFromContent`方法; 1. 修改配置管理、模板引擎、调试模式的环境变量名称为大写下划线标准格式; 1. 改进`grand`模块随机数生成设计,底层使用`crypto/rand`+缓冲区实现高速的随机数生成([https://gfer.me/util/grand/index](https://gfer.me/util/grand/index)); ## 问题修复 1. 修复`gspath`模块在`windows`下搜索失效问题; 1. 修复`gspath`模块Search时带有indexFiles的检索问题; 1. bug fix INZS1([https://gitee.com/johng/gf/issues/INZS1](https://gitee.com/johng/gf/issues/INZS1)); 1. 修复`gproc.ShellRun`在windows下的执行问题; <div align=center> <img src="https://gfer.me/cover.png" width="150"/> </div> `GF(Go Frame)`是一款模块化、松耦合、轻量级、高性能的Go应用开发框架。支持热重启、热更新、多域名、多端口、多服务、HTTP/HTTPS、动态路由等特性 ,并提供了Web服务开发的系列核心组件,如:Router、Cookie、Session、服务注册、配置管理、模板引擎、数据校验、分页管理、数据库ORM等等等等, 并且提供了数十个内置核心开发模块集,如:缓存、日志、时间、命令行、二进制、文件锁、内存锁、对象池、连接池、数据编码、进程管理、进程通信、文件监控、定时任务、TCP/UDP组件、 并发安全容器等等等等等等。 开源项目地址(仓库保持实时同步): [Gitee](https://gitee.com/johng/gf),[Github](https://github.com/johng-cn/gf)。 使用中有任何问题/建议,欢迎加入技术QQ群交流:**116707870**。 如有优秀的框架使用案例,欢迎联系作者将地址展示到项目库中,您的牛逼将被世人所瞻仰。 # 安装 ```html go get -u gitee.com/johng/gf ``` # 限制 ```shell golang版本 >= 1.9.2 ``` # 架构 <div align=center> <img src="https://gfer.me/images/arch.png"/> </div> # 特点 1. 轻量级、高性能,模块化、松耦合设计,丰富的开发模块; 1. 热重启、热更新特性,并支持Web界面及命令行管理接口; 1. 专业的技术交流群,完善的开发文档及示例代码,良好的中文化支持; 1. 支持多种形式的服务注册特性,灵活高效的路由控制管理; 1. 支持服务事件回调注册功能,可供选择的pprof性能分析模块; 1. 支持配置文件及模板文件的自动检测更新机制,即修改即生效; 1. 支持自定义日期时间格式的时间模块,类似PHP日期时间格式化; 1. 强大的数据/表单校验模块,支持常用的40种及自定义校验规则; 1. 强大的网络通信TCP/UDP组件,并提供TCP连接池特性,简便高效; 1. 提供了对基本数据类型的并发安全封装,提供了常用的数据结构容器; 1. 支持Go变量/Json/Xml/Yml/Toml任意数据格式之间的相互转换及创建; 1. 强大的数据库ORM,支持应用层级的集群管理、读写分离、负载均衡,查询缓存、方法及链式ORM操作; 1. 更多特点请查阅框架[手册](https://gfer.me)和[源码](https://godoc.org/github.com/johng-cn/gf); # 文档 [https://gfer.me](https://gfer.me) # 使用 ```go 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

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