迅睿 CMS 模板里的公共片段:include 与继承的取舍
摘要
头部、底部、侧栏这些每页都有的部分,迅睿给了几种复用方式,选错会让后期改版非常痛苦。方式一:模板包含标签{template "header"} ... {template "footer"}最简单直接。缺点是包含的模板不继承父级变量,需要显
头部、底部、侧栏这些每页都有的部分,迅睿给了几种复用方式,选错会让后期改版非常痛苦。
方式一:模板包含标签
{template "header"}
...
{template "footer"}最简单直接。缺点是包含的模板不继承父级变量,需要显式传参:{template "header", ['title' => $title]}。
方式二:布局继承
建一个 layout.html,里面留 {$content} 占位,子模板声明继承关系后只需写中间那段。适合页面结构高度统一、只有内容区不同的站点。
方式三:函数封装
在应用里写一个 dr_share_header() 之类的函数,模板直接调用。灵活度最高,但逻辑跑到 PHP 里去了,改样式还得改代码,非必要不用。
对照表
| 场景 | 推荐 |
|---|---|
| 纯静态片段 | template 标签 |
| 结构统一的多页面 | 布局继承 |
| 需要读数据库的片段 | 函数封装 |
| 带参数的导航 | template 标签 + 传参 |
一个实际经验
不要为了“少写几行”而过度拆片段。拆成十几个小文件后,改一个样式要跳五个文件去找,维护成本反而高。判断标准是:这个片段是否在三个以上模板里出现,并且改动时永远一起改,满足才拆。
2026年10月20日 14:59
前后30天 · 点日期看归档
9月20日
9月21日
9月22日
9月23日
9月24日
9月25日
9月26日
9月27日
9月28日
9月29日
9月30日
10月1日
10月2日
10月3日
10月4日
10月5日
10月6日
10月7日
10月8日
10月9日
10月10日
10月11日
10月12日
10月13日
10月14日
10月15日
10月16日
10月17日
10月18日
10月19日
10月20日
10月21日
10月22日
10月23日
10月24日
10月25日
10月26日
10月27日
10月28日
10月29日
10月30日
10月31日
11月1日
11月2日
11月3日
11月4日
11月5日
11月6日
11月7日
11月8日
11月9日
11月10日
11月11日
11月12日
11月13日
11月14日
11月15日
11月16日
11月17日
11月18日
11月19日