视图包裹

借鉴了Rails的思想,视图文件的相互引用方式分为内部包含和外部包裹两种方式。内部包含标签是{T ...}或者{I ...}。 外部包裹的用法是在视图文件夹下的@wrap文件夹下建立对应的目录和文件,同等目录的视图文件就会自动被对应规则包裹起来。

视图包裹实例

建立包裹文件,view/default/@wrap/user/login/wrap.html

内容为:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>{$title}</title>
</head>
<body>
<ul>
{loop $list as li}
....
{/loop}
<li>    
</ul>
<div>
@YYUC-WRAP
</div>
</body>
</html>

建立包裹文件,view/default/@wrap/user/wrap.html

内容为:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>全局包裹</title>
</head>
<body>  
@YYUC-WRAP
</body>
</html>

建立视图文件:view/default/user/login/login.html

内容为:

<lable>用户名:</lable>...
<lable>密码:</lable>...

建立视图文件:view/default/user/login/success.html

<h2>登录成功</h2>

框架在进行视图编译时会进行逐级的包裹匹配,如编译文件view/default/login/user/login.html或文件view/default/user/login/success.html时首先寻找包裹文件view/default/@wrap/user/login/wrap.html是否存在。 如果存在则直接进行编译,不存在继续查找上级包裹文件view/default/@wrap/user/wrap.html是否存在,如不存在则继续查找直到查找到包裹目录顶级为止。

如上述文件所示,编译文件view/default/login/user/login.html时,相当于直接编译如下内容:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>{$title}</title>
</head>
<body>
<ul>
{loop $list as li}
....
{/loop}
<li>    
</ul>
<div>
<lable>用户名:</lable>...
<lable>密码:</lable>...
</div>
</body>
</html>

提示: 包裹文件中的@YYUC-WRAP标签为统一包裹替换符号。

视图包裹通常应用在框架结构一致的目录中,这样开发人员只需要关注视图中变化的部分就好。