扩展模块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>