/****************************************************************************** * PHP Smarty template for website * 说明: * 之前一直在想将MVC的方式加在PHP做的网站上,这样比较好处理,相对来说比较好 * 处理,这样后续维护会比较好。 * * 2017-3-12 深圳 南山平山村 曾剑锋 *****************************************************************************/ 一、参考文档: 1. Smarty教程 http://www.yiibai.com/smarty/ 2. smarty template engine http://www.smarty.net/ 3. Parsing JSON file with PHP http://stackoverflow.com/questions/4343596/parsing-json-file-with-php 二、Smarty Download: 1. gz file: https://github.com/smarty-php/smarty/archive/v3.1.30.tar.gz 2. zip file: https://github.com/smarty-php/smarty/archive/v3.1.30.zip 三、配置: 1. 使用相对路径加入当前项目; 2. 使用require_once('<path to Smarty.class.php>'): <?php // NOTE: Smarty has a capital 'S' require_once('<path to Smarty.class.php'); $smarty = new Smarty(); ?> 3. template文件后缀名: <file name>.tpl 4. 注释: {* comments *} 5. 赋值变量: $smarty->assign('name','Ned'); 6. 使用: {$name} 7. 处理模板: $smarty->display('index.tpl'); 8. 打开debug模式: $smarty->debugging = true; 9. 继承class smarty,扩展功能: <?php // load Smarty library require('Smarty.class.php'); // The setup.php file is a good place to load // required application library files, and you // can do that right here. An example: // require('guestbook/guestbook.lib.php'); class Smarty_GuestBook extends Smarty { function __construct() { // Class Constructor. // These automatically get set with each new instance. parent::__construct(); $this->setTemplateDir('/web/www.example.com/guestbook/templates/'); $this->setCompileDir('/web/www.example.com/guestbook/templates_c/'); $this->setConfigDir('/web/www.example.com/guestbook/configs/'); $this->setCacheDir('/web/www.example.com/guestbook/cache/'); $this->caching = Smarty::CACHING_LIFETIME_CURRENT; $this->assign('app_name', 'Guest Book'); } } ?> 10. 继承使用: <?php require('guestbook/setup.php'); $smarty = new Smarty_GuestBook(); $smarty->assign('name','Ned'); $smarty->display('index.tpl'); ?> 11. 解析JSON文件当配置文件,将数据放入smarty对象中,这样就好配置了。