GoFrame v1.11 发布,Go 基础开发框架

gqcn
 gqcn
发布于 2020年01月14日
收藏 41

GF(Go Frame) http://goframe.org 是一款模块化、高性能、生产级的Go基础开发框架。南苑棋牌_[官网入口]实现了比较完善的基础设施建设,包括常用的核心开发组件, 如:缓存、日志、文件、时间、队列、数组、集合、字符串、定时器、命令行、文件锁、内存锁、对象池、连接池、资源管理、数据校验、数据编码、文件监控、 定时任务、数据库ORM、TCP/UDP组件、进程管理/通信、并发安全容器等等。 并提供了Web服务开发的系列核心组件,如:Router、Cookie、Session、Middleware、服务注册、配置管理、模板引擎等等, 支持热重启、热更新、多域名、多端口、多服务、http、Rewrite等特性。

GF有着丰富的基础模块、完善的工具链、详尽的开发文档。开源近两年以来,GF得到越来越多小伙伴的肯定和支持,从寂寂无名到现在被广泛应用于微服务、物联网、区块链、电商系统、银行系统等企业级的生产项目中,经历了百万级、千万级项目的考验,2019年度被码云gitee评选为GVP南苑棋牌_[官网入口]最有价值开源项目。GF正在快速地成长中,目前保持着1-2个月迭代版本的发布规律,社区活跃,欢迎加入GF大家庭。

最后,祝大家2020新年快乐,鼠年大吉!

新特性

  1. 新年新气象,官网文档大量更新:http://goframe.org/index
  2. GF工具链更新:http://goframe.org/toolchain/cli
    • 新增gf run热编译运行命令;
    • 新增gf docker Docker镜像编译命令;
    • 新增gf gen model 强大的模型自动生成命令;
    • gf build命令增加对配置文件配置支持;
    • 大量命令行工具改进工作;
    • 新增自动代理设置特性;
  3. 数据库ORM新特性:

功能改进

container

  1. garray
    • 新增New*ArrayRange南苑棋牌_[官网入口]方法,用于初始化创建指定数值范围的数组。
    • 新增Iterator*方法,用于数组项元素回调遍历。
    • 完善单元测试。
  2. gvar
    • 改进MapStrStrMapStrStrDeep方法实现。

net

  1. ghttp
    • 改进HTTP客户端,增加对提交参数的自动Content-Type南苑棋牌_[官网入口]识别功能。
    • Request对象增加Parse南苑棋牌_[官网入口]方法,用于快捷的对象转换即参数校验。
    • Request.GetPost*方法全部标记为deprecated,统一客户端参数提交方式为QueryStringFormBody
    • 去掉Response模板解析时的Get/Post内置变量,新增QueryFormRequest内置变量:http://goframe.org/net/ghttp/response/template
    • 改进Response.WriteJson*Response.WriteXml*方法,增加对string[]byte南苑棋牌_[官网入口]类型参数的支持。
    • Server新增GetRouterArray方法,用于向应用层暴露并获取Server的路由列表。
    • Server新增Use方法,该方法为BindMiddlewareDefault的别名,用以全局中间件的注册。
    • Server新增RouteOverWrite配置项,用于控制是否在注册路由冲突时自动覆盖,默认关闭并提示。
    • Server新增Graceful配置项,用于在单服务场景下控制平滑重启特性的开启/关闭,默认开启。
    • 南苑棋牌_[官网入口]完善单元测试。
  2. gtcp
    • 改进简单协议下的数据包发送接收功能。
    • 将连接池默认的缓存过期时间30秒修改为10南苑棋牌_[官网入口]秒。
    • 完善单元测试。

database

  1. gdb

    • 新增As数据表别名方法。
    • 改进数据表、字段的安全字符自动识别添加功能。
    • 新增DB数据库对象切换方法。
    • 新增TX链式操作事务支持方法。
    • 完善单元测试。

      os

  2. gcfg

    • 新增GetMapStrStr方法。
  3. gcmd

    • 增加参数解析的strict严格参数,默认严格解析,不存在指定参数/选项名称时则报错返回。
  4. genv

    • 改进Remove方法支持多个环境变量的删除。
  5. gfile

    • 改进TempDir临时目录获取方法,在*nix系统下默认为/tmp目录。
    • 新增ReadLinesReadByteLines方法,用以按行回调读取文件内容。
    • 新增Copy*方法,用以文件/目录的拷贝,支持递归。
    • 新增Replace*方法,用以目录下的文件内容替换,支持递归。
    • 改进Scan*方法,用以检索并返回指定目录下的所有文件/目录,支持文件模式指定,支持递归。
    • 完善单元测试。
  6. gproc

    • 改进命令行运行方法。
    • 改进Shell命令文件检索逻辑。
    • 改进实验性的进程间通信设计。
  7. gtime

    • 将包方法以及Time对象的时间戳方法SecondMillisecondMicrosecondNanosecond标记为废除, 并新增TimestampTimestampMilliTimestampMicroTimestampNano替换。
    • 需要注意的是以上修改可能和老版本存在兼容性问题。
  8. gview

    • 解析功能、缓存设计改进。
    • 新增encodedecodeHTML编码/解码模板函数。
    • 新增concat字符串拼接模板函数。
    • 新增dump模板函数,功能类似于g.Dump方法。
    • 新增AutoEncode配置项,用于自动转码输出的HTML内容,常用于防止XSS,默认关闭。需要注意的是该特性并不会影响include内置函数: http://goframe.org/os/gview/xss
    • 单元测试完善。

crypto

  1. gmd5
    • 增加MustEncryptMustEncryptBytesMustEncryptStringMustEncryptFile方法。
  2. gsha1
    • 增加MustEncryptFile方法

encoding

  1. gbase64
    • 新增MustEncodeFileMustEncodeFileToStringMustDecodeMustDecodeToString方法。
  2. gjson/gparser
    • 新增GetMapStrStr方法。
    • 新增Must*方法,用于指定数据格式的转换失败时产生panic错误,而不会返回error参数。

util

  1. gconv
    • 改进Convert方法增加对[]int32[]int64[]uint[]uint32[]uint64[]float32[]float64数据类型的转换支持。
    • 改进String字符串转换方法对指针参数的支持。
    • 改进Map* Map转换方法的代码结构及性能。
    • 新增FloatsFloat32sFloat64s[]float32[]float64类型转换方法。
    • 新增IntsInt32sInt64s[]int[]int32[]int64类型转换方法。
    • 新增UintsUint32sUint64s[]uint[]uint32[]uint64类型转换方法。
    • 完善单元测试。

frame

  1. gins
    • 所有的单例对象在获取失败时产生panic错误。

Bug Fix

  1. 增加对常见错误路由格式例如/user//index的兼容支持。
  2. 修复gtcp/gudp在数据接收时的间隔时间单位问题。
  3. 修复gfile/gspath/gfsnotify包对文件的存在性判断不严谨问题。
  4. 修复gproc.Kill方法在windows系统下的运行阻塞问题。
  5. 修复gstr.TrimLeftStr/gstr.TrimRightStr在被替换字符串长度小于替换字符串长度时的数组溢出问题。
本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 OSCHINA 社区 [http://fsqbm.com]
本文标题:GoFrame v1.11 发布,Go 基础开发框架
加载中

精彩评论

gqcn
gqcn
兄弟,你进错片场了,出门,左转,谢谢。
就不错
就不错
PHP是最好的编程语言

最新评论(23

郑勇
能把go玩的这么溜的还是很少的
cc_z
cc_z
只是怀疑能不能hold住这么多技术,这是功能大而全框架的通病。
gqcn
gqcn
GF基础开发框架提供了通用的、基础的开发模块,技术倒不多,但是细节多,重要的是经历了很多生产项目的实践。
曹江华
曹江华
gf的plugin件机制应该出来,框架只包含基础类库,常用类库,web/api等,其它的如:redis、orm、mongodb、缓存、kv等都可以通过插件机制去实现。
gqcn
gqcn
准确的说,可以通过接口形式定义一些组件的API,开发者可以自定义替换这些组件。
f
fxk2006
gf update
Mark哥是我
Mark哥是我
不错
cc_z
cc_z
这么多功能意味多少bug
gqcn
gqcn
The best code is no code at all.
顶级项目传送门:http://github.com/kelseyhightower/nocode
蓝冰心
大佬又开始更新了
gqcn
gqcn
一般1到2月更新一次
罐装果汁
罐装果汁
点赞~
Fly的狐狸
Fly的狐狸
必须支持强哥~!~
就不错
就不错
PHP是最好的编程语言
gqcn
gqcn
兄弟,你进错片场了,出门,左转,谢谢。
裴宝亮
裴宝亮
我本就是PHP程序员,10年。我也觉得PHP是最好的编程语言,奈何用PHP的程序员几乎都不是做好的程序员。
hailaz
hailaz
fmt.Println("大家表示赞同!")
阿润
go run
榕树下_
榕树下_
go build
天绝弑杀
天绝弑杀
go install
裴宝亮
裴宝亮
祝作者新年快乐。我有个问题问下。用gf update的时候报错:
Error: installing binary failed, open D:\workspace\go_path\bin\gf.exe: The process cannot access the file because it is being used by another process.
这个怎么解决,求解疑。
gqcn
gqcn
你更新到最新的cli版本试试。
裴宝亮
裴宝亮
谢谢,好的,我先试一下。
返回顶部
顶部

页面底部区域 foot.htm