改进View类engine方法 如果传入字符串 则表示模板引擎名称 模板引擎参数取默认值 增加 view_replace_str 配置参数 用于设置全局 视图输出内容替换

This commit is contained in:
thinkphp
2016-04-26 17:39:20 +08:00
parent 29d3d9e503
commit 4b1e88d0cb
3 changed files with 14 additions and 4 deletions

View File

@@ -117,6 +117,8 @@ return [
'taglib_end' => '}',
],
// 视图输出字符串内容替换
'view_replace_str' => [],
// 默认跳转页面对应的模板文件
'dispatch_success_tmpl' => THINK_PATH . 'tpl' . DS . 'dispatch_jump.tpl',
'dispatch_error_tmpl' => THINK_PATH . 'tpl' . DS . 'dispatch_jump.tpl',

View File

@@ -35,7 +35,7 @@ class Controller
*/
public function __construct()
{
$this->view = View::instance(Config::get('template'));
$this->view = View::instance(Config::get('template'), Config::get('view_replace_str'));
// 控制器初始化
if (method_exists($this, '_initialize')) {

View File

@@ -70,14 +70,22 @@ class View
/**
* 设置当前模板解析的引擎
* @access public
* @param array $options 引擎参数
* @param array|string $options 引擎参数
* @return $this
*/
public function engine($options = [])
{
$type = !empty($options['type']) ? $options['type'] : 'Think';
if (is_string($options)) {
$type = $options;
$options = [];
} else {
$type = !empty($options['type']) ? $options['type'] : 'Think';
}
$class = (!empty($options['namespace']) ? $options['namespace'] : '\\think\\view\\driver\\') . ucfirst($type);
unset($options['type']);
if (isset($options['type'])) {
unset($options['type']);
}
$this->engine = new $class($options);
return $this;
}