GoFrame v1.2.11,Go 應用開發框架
GoFrame v1.2.11釋出了!
新特性
-
ORM
新增對SQLServer
及Oracle
的支援( ofollow,noindex" target="_blank">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
模組預設不新增工作目錄到搜尋路徑; -
改進
Socket/">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() }