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