mirror of
https://gitee.com/johng/gf
synced 2026-07-04 21:03:13 +08:00
add IsServiceHandler for ghttp.RouterItem
This commit is contained in:
@ -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 {
|
||||
|
||||
@ -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)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user