扩展模块Smarty使用说明
DoitPHP的smarty extension是调用smarty模板引擎,进行程序开发的扩展模块。注:DoitPHP的视图机制已经很完善,无须第三方模板引擎,不过有些大型的开发团队可能要用到(主要是团队老大要求)。特此编写了本模块。
模块安装
下载smarty扩展压缩包,解压(很自然的事情),放置于扩展目录中(extensions)。保证smarty主文件路径:application/extensions/smarty/smarty-2.1/Smarty.class.php 。
使用方法
1、在Controller文件中重定义initView()类方法,代码如下:
- /**
- * 实例化Smarty.
- *
- * @access protected
- * @return object
- */
- protected function initView() {
- return $this->ext('smarty');
- }
如果想让程序效率运行更高一点,可以直接加载并实现化smarty。代码如下:
- /**
- * 实例化Smarty.
- *
- * @access protected
- * @return object
- */
- protected function initView() {
- //文件加载
- $filePath = BASE_PATH . '/extensions/smarty/smarty-2.1/Smarty.class.php';
- Doit::loadFile($filePath);
- $smarty = $this->instance('Smarty');
- $smarty->template_dir = BASE_PATH . '/views/';
- $smarty->compile_dir = CACHE_PATH . '/views/';
- $smarty->cache_dir = CACHE_PATH . '/data/';
- $smarty->config_dir = BASE_PATH . '/config/';
- return $smarty;
- }
然后,这个重定义initView()的Controller文件中的Action类方法中在对视图文件处理时,就可以直接使用Controller提供的类方法。实例代码如下:
- public function indexAction() {
- $this->assign('content', '你好,这是一个Smarty扩展实例');
- $this->display('index/index.html');
- }
其视图文件路径为:application/views/index/index.html, 内容为:
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="utf-8">
- <title>实例:Smarty扩展</title>
- </head>
- <body>
- {$content}
- </body>
- </html>
原文: http://www.doitphp.com/index/documentation/?articleid=59