修改配置管理、模板引擎、调试模式的环境变量名称为大写下划线标准格式

This commit is contained in:
john
2018-11-01 09:46:35 +08:00
parent 190f2ff27c
commit c229573778
4 changed files with 74 additions and 55 deletions

View File

@ -1,52 +1,51 @@
ON THE WAY:
orm增加更多数据库支持
增加对于数据表Model的封装
更多数据库的ORM功能支持
考虑gdb对象管理增加二级连接池特性提高New&Close性能
增加图形验证码支持,至少支持数字和英文字母;
增加热编译工具,提高开发环境的开发/测试效率媲美PHP开发效率
增加可选择性的orm tag特性用以数据表记录与struct对象转换的键名属性映射
ghttp.Response增加输出内容后自动退出当前请求机制不需要用户手动return参考beego如何实现
Cookie&Session数据池化处理
ghttp.Client增加proxy特性
gtime增加对时区转换的封装并简化失去转换时对类似+80500时区的支持
orm增加sqlite对Save方法的支持(去掉触发器语句);
ghttp.Server增加Ip访问控制功能(DenyIps&AllowIps)
ghttp路由功能增加分组路由特性
ghttp增加返回数据压缩机制
gview中的template标签失效问题
gfile文件stat信息使用gfsnotify进行缓存更新改进
ghttp.Server增加proxy功能特性本地proxy和远程proxy本地即将路由规则映射远程即反向代理
gjson对大json数据的解析效率问题
ghttp增加route name特性并同时支持backend和template(提供内置函数)引用可以通过RedirectRoute方法给定route name和路由参数跳转到指定的路由地址上
ghttp.Client自动Close机制
gvalid校验支持当第一个规则失败后便不再校验后续的规则最好做成链式操作
检查ghttp.Server超时问题
gvalid增加支持对[]rune的长度校验(一个中文占3个字节)
ghttp.Request增加对输入参数的自动HtmlEncode机制
常量命名风格根据golint进行修改
开放rwmutex包并将gjson的互斥锁使用自定义的mutex替换
文档完善:
gconv struct tag、
控制器及执行对象注册的Init&Shut方法、
ghttp.Response&ServeFile、gfcache、gproc shell执行、
ghttp Server&Client basic auth、
glog分类&日志等级&链式操作、gdb debug自动输出调试信息、gmlock内存锁、
服务注册域名增加对泛域名的支持;
服务注册时判断方法定义满足规范时才执行绑定否则提示WARN信息
Cookie设置中文失效问题
ghttp hook回调使用方式在注册路由比较多的时候优先级可能使得开发者混乱考虑方式便于管理
使用gconv将slice映射到struct属性上例如redis hscan的结果集
项目参考:
https://github.com/namreg/godown
https://github.com/Masterminds/sprig
gform参考 https://gohouse.github.io/gorose/dist/index.html 进行改进
完善配置管理章节,说明默认的配置文件更改方式;
完善gform配置管理说明g.DB/Database和gdb.New的区别
# ON THE WAY
1. orm增加更多数据库支持
1. 增加对于数据表Model的封装
1. 更多数据库的ORM功能支持
1. 考虑gdb对象管理增加二级连接池特性提高New&Close性能
1. 增加图形验证码支持,至少支持数字和英文字母;
1. 增加热编译工具,提高开发环境的开发/测试效率媲美PHP开发效率
1. 增加可选择性的orm tag特性用以数据表记录与struct对象转换的键名属性映射
1. ghttp.Response增加输出内容后自动退出当前请求机制不需要用户手动return参考beego如何实现
1. Cookie&Session数据池化处理
1. ghttp.Client增加proxy特性
1. gtime增加对时区转换的封装并简化失去转换时对类似+80500时区的支持
1. orm增加sqlite对Save方法的支持(去掉触发器语句);
1. ghttp.Server增加Ip访问控制功能(DenyIps&AllowIps)
1. ghttp路由功能增加分组路由特性
1. ghttp增加返回数据压缩机制
1. gview中的template标签失效问题
1. gfile文件stat信息使用gfsnotify进行缓存更新改进
1. ghttp.Server增加proxy功能特性本地proxy和远程proxy本地即将路由规则映射远程即反向代理
1. gjson对大json数据的解析效率问题
1. ghttp增加route name特性并同时支持backend和template(提供内置函数)引用可以通过RedirectRoute方法给定route name和路由参数跳转到指定的路由地址上
1. ghttp.Client自动Close机制
1. gvalid校验支持当第一个规则失败后便不再校验后续的规则最好做成链式操作
1. 检查ghttp.Server超时问题
1. gvalid增加支持对[]rune的长度校验(一个中文占3个字节)
1. ghttp.Request增加对输入参数的自动HtmlEncode机制
1. 常量命名风格根据golint进行修改
1. 开放rwmutex包并将gjson的互斥锁使用自定义的mutex替换
1. 文档完善:
- gconv struct tag、
- 控制器及执行对象注册的Init&Shut方法、
- ghttp.Response&ServeFile、gfcache、gproc shell执行、
- ghttp Server&Client basic auth、
- glog分类&日志等级&链式操作、gdb debug自动输出调试信息、gmlock内存锁、
1. 服务注册域名增加对泛域名的支持;
1. Cookie设置中文失效问题
1. ghttp hook回调使用方式在注册路由比较多的时候优先级可能使得开发者混乱考虑方式便于管理
1. 使用gconv将slice映射到struct属性上例如redis hscan的结果集
1. 项目参考:
- https://github.com/namreg/godown
- https://github.com/Masterminds/sprig
1. gform参考 https://gohouse.github.io/gorose/dist/index.html 进行改进
DONE:
# DONE
1. gconv完善针对不同类型的判断例如尽量减少sprintf("%v", xxx)来执行string类型的转换
2. ghttp.Server请求执行中增加服务退出的方法不再执行后续操作
3. ghttp.Response对象完善并改进数据返回方法(Write/WriteString)
@ -89,4 +88,9 @@ DONE:
40. ghttp.Server的Cookie及Session锁机制优化(去掉map锁机制);
41. 解决glog串日志情况
42. glog增加对日志文件名称的生成规则设定支持时间格式规则
43. ghttp日志增加客户端IP信息
43. ghttp日志增加客户端IP信息
44. 完善gform配置管理说明g.DB/Database和gdb.New的区别
1. 完善配置管理章节,说明默认的配置文件更改方式;
1. 服务注册时判断方法定义满足规范时才执行绑定否则提示WARN信息

View File

@ -74,7 +74,7 @@ func View(name...string) *gview.View {
return instances.GetOrSetFuncLock(key, func() interface{} {
path := gcmd.Option.Get("gf.viewpath")
if path == "" {
path = genv.Get("gf.viewpath")
path = genv.Get("GF_VIEWPATH")
if path == "" {
path = gfile.SelfDir()
}
@ -101,7 +101,7 @@ func Config(file...string) *gcfg.Config {
func() interface{} {
path := gcmd.Option.Get("gf.cfgpath")
if path == "" {
path = genv.Get("gf.cfgpath")
path = genv.Get("GF_CFGPATH")
if path == "" {
path = gfile.SelfDir()
}

View File

@ -6,7 +6,21 @@
package g
import "gitee.com/johng/gf/g/os/glog"
import (
"gitee.com/johng/gf/g/os/gcmd"
"gitee.com/johng/gf/g/os/genv"
"gitee.com/johng/gf/g/os/glog"
"gitee.com/johng/gf/g/util/gconv"
)
func init() {
if v := genv.Get("GF_DEBUG"); v != "" {
SetDebug(gconv.Bool(v))
}
if v := gcmd.Option.Get("gf.debug"); v != "" {
SetDebug(gconv.Bool(v))
}
}
// 是否显示调试信息
func SetDebug(debug bool) {

View File

@ -296,7 +296,7 @@ func (s *Server) GetRouteMap() string {
buf := bytes.NewBuffer(nil)
table := tablewriter.NewWriter(buf)
table.SetHeader([]string{"SERVER", "ADDRESS", "DOMAIN", "METHOD", "ROUTE", "HANDLER", "HOOK"})
table.SetHeader([]string{"SERVER", "ADDRESS", "DOMAIN", "METHOD", "P", "ROUTE", "HANDLER", "HOOK"})
table.SetRowLine(true)
table.SetBorder(false)
table.SetCenterSeparator("|")
@ -333,16 +333,17 @@ func (s *Server) GetRouteMap() string {
addr += ",tls" + s.config.HTTPSAddr
}
for _, a := range m {
data := make([]string, 7)
data := make([]string, 8)
for _, v := range a.Slice() {
item := v.(*tableItem)
data[0] = s.name
data[1] = addr
data[2] = item.domain
data[3] = item.method
data[4] = item.route
data[5] = item.handler
data[6] = item.hook
data[4] = gconv.String(len(strings.Split(item.route, "/")) - 1)
data[5] = item.route
data[6] = item.handler
data[7] = item.hook
table.Append(data)
}
}