如图所示,这是一个经典的网站布局图,如果网站页面内容量大,栏目多,那么布局就会更加繁芜。如果不该用布局功能,那么要保持全体网站想通的布局形式,就必须在每个模版中利用相同的代码,这无疑会极大地增加开拓本钱,降落开拓效率。而一旦利用布局功能,那么只须要将header、side、footer区域的重复代码放到布局模版中,留下content区域的代码放到各自掌握器动作模版中,那么就能够有效地提高开拓效率。
ThinkPHP3.0之前的模版引擎没有布局的观点,但开拓职员可以利用include包含文件达到网站布局的效果。新版的ThinkPHP引入了模版布局功能,要利用模版布局须要在配置项中打开Layout_on选项 (默认是关闭,即false)。为了方便演示,接下来将利用一个大略的模版文件,演示布局功能的利用,帮助读者加深布局的认识。
首先在项目Tpl根目录下创建一个Html文件,并命名为layout.html。该文件即为当前运用的布局文件,利用可视化工具(如dreamweaver)设计一个网站外不雅观,将须要常常改动的代码利用{__CONTENT__}特定变量(没有定界符)代替,如简单图所示

如上图所示,因代码的篇幅太多,截图时紧缩后效果,模版引擎会将{__CONTENT__}变量更换为相应的掌握动作页面,全体阐明流程将由layout.html开始,然后到各自的动作页面。这样一来,我们只需在掌握器动作中嵌入少量的代码,即可使页面保持统一的布局与风格,如以下代码所示
在用户访问该页面时,上述代码将会代替{__CONTENT__}变量,效果如图所示
在布局文件中嵌入的变量或标签都是非全局的,而只针对当前页面生效。以是在布局代码中声明变量或语句,都该当在当前掌握器动作中处理,否则就没有存在的意义。布局文件许可嵌套,如果网站页面更加繁芜,还可以结合include等标签实现开拓需求。
其余,如果不须要全局布局,也可以单独在当前页面中利用布局文件,只须要在当前页面头部加上<layout name=\"大众layout\公众/>标签即可,这种办法称为局部布局,事实上与include标签事理一样。