Skip to content

Latest commit

 

History

History
executable file
·
104 lines (85 loc) · 3.52 KB

View.md

File metadata and controls

executable file
·
104 lines (85 loc) · 3.52 KB

#View 视图类,用于模板的展示以及模板数据的设置.
当前类在系统启用了 view之后会自动实例化并且作为$vitex的一个属性存在。
当调用Vitex对象实例的 view方法后($vitex->view()),可以使用 $vitex->view 来访问到当前类的实例.
当然你也可以直接使用 new \vitex\View()来实例化当前类。

##setStyle() 设置模板风格,可以设置一个风格文件夹,比如 default

签名
setStyle(string $style)
参数 string $style 参数

示例

$vitex->view->setStyle('default')

##set() 给模板传递变量,单个或者多个数据设置。
签名
set(string $key, string $val)
参数
string/array $key 键值
string $val 键名
示例
$vitex->view->set('title','mysite')
$vitex->view->set(['title'=>'mysite'])

##get() 获取数据,获取通过set设置的数据。 签名
get(string $key = null) : mixed
参数
string $key 键值
示例
$vitex->view->get('title')

##setTplPath() 设置当前设置的模板所在的路径,比如你的模板放在/home/www/tpl下 那么直接设置给他,
当前设置的路径会被直接连接到 fetch/display方法所指定的模板名之前。
默认的模板路径是系统配置 templates.path指定的路径

签名
setTplPath() : object
参数
string $path 指定的模板存放路径
示例
$vitex->view->setTplPath('/home/www/tpl')

##getTplPath() 获取当前设置的模板所在的路径

签名
getTplPath() : string
示例
$path = $vitex->view->getTplPath()

##template() 通过传递模板的名字自动根据配置生成模板的绝对路径. 此方法使用setTplPath指定的路径来构造绝对路径

签名
template( $tpl)
参数
string $tpl 模板的名字
示例
$vite->view->template('index') // /home/www/tpl/index.html

##fetch() 通过传递的模板和数据,返回解析的模板数据。
签名
fetch(string $tplname, array $data = array(), $merge = true) : string
参数
string $tplname 模板名称
array $data 数据,除了在这里可以指定数据之外,还可以使用 set来设定数据,
或者使用Response对象的set方法设定数据 比如指定 ['name'=>'Vitex'],在模板中可以直接使用 $name 调用 Vitex内容
bool $merge 是否要合并数据,一般不需要指定该参数
示例
$vitex->view->fetch('index',['title'=>'mysite'])

注意 此方法在 Vitex对象和Response对象中均有封装,他们封装的名字为 render,
但是他们的表现与display表现一致,直接输出了内容 $vitex->render('index',[])
$vitex->res->render('index',[])

##display() 作用与fetch方法类似,但是此函数会直接输出相应的数据。相当于:
echo $this->fetch(...)

##render() 模板中嵌套子模板使用,支持多级的嵌套 签名
render(string $tplname, array $data = array(), $merge = false) : string
参数 string $tplname 模板名称
array $data 子模板中使用的 除了继承主(父)模板的数据之外,还可以在这里指定额外的数据,使用方式如 fetch方法
bool $merge 是否要合并数据,一般不需要指定该参数

index.html模板中 使用 $this->render('head') 可以把 head.html的内容嵌套到index.html中显示
如上 head.html中还可以嵌套 其他的子模板 如 nav.html;在head.html中使用 $this->render('nav')