add IsServiceHandler for ghttp.RouterItem

This commit is contained in:
John
2019-12-09 23:19:39 +08:00
parent 6ca5141020
commit e40894ca45
2 changed files with 22 additions and 17 deletions

View File

@ -63,13 +63,14 @@ type (
// Router item just for dumping.
RouterItem struct {
Type int
Middleware string
Domain string
Method string
Route string
Priority int
handler *handlerItem
Type int
Middleware string
Domain string
Method string
Route string
Priority int
IsServiceHandler bool
handler *handlerItem
}
// 路由函数注册信息
@ -389,7 +390,10 @@ func (s *Server) GetRouterMap() map[string][]RouterItem {
Priority: len(registeredItems) - index - 1,
handler: registeredItem.handler,
}
if item.handler.itemType == gHANDLER_TYPE_MIDDLEWARE {
switch item.handler.itemType {
case gHANDLER_TYPE_CONTROLLER, gHANDLER_TYPE_OBJECT, gHANDLER_TYPE_HANDLER:
item.IsServiceHandler = true
case gHANDLER_TYPE_MIDDLEWARE:
item.Middleware = "GLOBAL MIDDLEWARE"
}
if len(item.handler.middleware) > 0 {

View File

@ -15,7 +15,6 @@ import (
"github.com/gogf/gf/os/gfcache"
"github.com/gogf/gf/os/gfsnotify"
"github.com/gogf/gf/os/gmlock"
"github.com/gogf/gf/text/gstr"
"github.com/gogf/gf/util/gconv"
"strconv"
"strings"
@ -135,10 +134,11 @@ func (view *View) Parse(file string, params ...Params) (result string, err error
if err := tpl.Execute(buffer, variables); err != nil {
return "", err
}
return view.i18nTranslate(buffer.String(), variables), nil
// TODO any graceful plan to replace "<no value>"?
result = gstr.Replace(buffer.String(), "<no value>", "")
result = view.i18nTranslate(result, variables)
return result, nil
//result = gstr.Replace(buffer.String(), "<no value>", "")
//result = view.i18nTranslate(result, variables)
//return result, nil
}
// ParseDefault parses the default template file with params.
@ -156,7 +156,7 @@ func (view *View) ParseContent(content string, params ...Params) (string, error)
err := (error)(nil)
key := fmt.Sprintf("%s_%v", gCONTENT_TEMPLATE_NAME, view.delimiters)
tpl := templates.GetOrSetFuncLock(key, func() interface{} {
return template.New(key).Delims(view.delimiters[0], view.delimiters[1]).Funcs(view.funcMap)
return template.New(key).Delims(view.delimiters[0], view.delimiters[1]).Funcs(view.funcMap).Option("missingkey=zero")
}).(*template.Template)
// Using memory lock to ensure concurrent safety for content parsing.
hash := strconv.FormatUint(ghash.DJBHash64([]byte(content)), 10)
@ -200,10 +200,11 @@ func (view *View) ParseContent(content string, params ...Params) (string, error)
if err := tpl.Execute(buffer, variables); err != nil {
return "", err
}
return view.i18nTranslate(buffer.String(), variables), nil
// TODO any graceful plan to replace "<no value>"?
result := gstr.Replace(buffer.String(), "<no value>", "")
result = view.i18nTranslate(result, variables)
return result, nil
//result := gstr.Replace(buffer.String(), "<no value>", "")
//result = view.i18nTranslate(result, variables)
//return result, nil
}
// getTemplate returns the template object associated with given template folder <path>.
@ -219,7 +220,7 @@ func (view *View) getTemplate(path string, pattern string) (tpl *template.Templa
if files := gres.ScanDirFile(path, pattern, true); len(files) > 0 {
var err error
for _, v := range files {
_, err = tpl.New(v.FileInfo().Name()).Parse(string(v.Content()))
_, err = tpl.New(v.FileInfo().Name()).Option("missingkey=zero").Parse(string(v.Content()))
if err != nil {
glog.Error(err)
}