视图组件是GF框架核心的组件之一,当然也支持非常方便的配置管理功能。

配置对象

配置对象定义:
https://godoc.org/github.com/gogf/gf/os/gview#Config

配置方法

方法列表: https://godoc.org/github.com/gogf/gf/os/gview

简要说明:

  1. 可以通过SetConfigSetConfigWithMap来设置。
  2. 也可以使用View对象的Set*方法进行特定配置的设置。
  3. 主要注意的是,配置项在View对象执行视图解析之前设置,避免并发安全问题。

SetConfigWithMap方法

我们可以使用SetConfigWithMap方法通过Key-Value键值对来设置/修改View的特定配置,其余的配置使用默认配置即可。其中Key的名称即是Config这个struct中的属性名称,并且不区分大小写,单词间也支持使用-/_/空格符号连接,具体可参考【gconv.Struct转换规则】章节。

简单示例:

  1. view := gview.New()
  2. view.SetConfigWithMap(g.Map{
  3. "Paths": []string{"template"},
  4. "DefaultFile": "index.html",
  5. "Delimiters": []string{"${", "}"},
  6. "Data": g.Map{
  7. "name": "gf",
  8. "version": "1.10.0",
  9. },
  10. })
  11. result, err := view.ParseContent("hello ${.name}, version: ${.version}")

其中DefaultFile表示默认解析的模板文件,键名也可以使用defaultFile, default-File, default_file, default file,其他配置属性以此类推。

配置文件

视图组件支持配置文件,当使用g.View(单例名称)获取View单例对象时,将会自动通过默认的配置管理对象获取对应的View配置。默认情况下会读取viewer.单例名称配置项,当该配置项不存在时,将会读取viewer配置项。

示例1,默认配置项

  1. [viewer]
  2. paths = ["template", "/var/www/template"]
  3. defaultFile = "index.html"
  4. delimiters = ["${", "}"]
  5. [viewer.data]
  6. name = "gf"
  7. version = "1.10.0"

随后可以使用g.View()获取默认的单例对象时自动获取并设置该配置。

示例2,多个配置项

多个View对象的配置示例:

  1. [viewer]
  2. paths = ["template", "/var/www/template"]
  3. defaultFile = "index.html"
  4. delimiters = ["${", "}"]
  5. [viewer.data]
  6. name = "gf"
  7. version = "1.10.0"
  8. [viewer.view1]
  9. defaultFile = "layout.html"
  10. delimiters = ["${", "}"]
  11. [viewer.view2]
  12. defaultFile = "main.html"
  13. delimiters = ["#{", "}"]

我们可以通过单例对象名称获取对应配置的View单例对象:

  1. // 对应 viewer.view1 配置项
  2. v1 := g.View("view1")
  3. // 对应 viewer.view2 配置项
  4. v2 := g.View("view2")
  5. // 对应默认配置项 viewer
  6. v3 := g.View("none")
  7. // 对应默认配置项 viewer
  8. v4 := g.View()