改进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' => '}', 'taglib_end' => '}',
], ],
// 视图输出字符串内容替换
'view_replace_str' => [],
// 默认跳转页面对应的模板文件 // 默认跳转页面对应的模板文件
'dispatch_success_tmpl' => THINK_PATH . 'tpl' . DS . 'dispatch_jump.tpl', 'dispatch_success_tmpl' => THINK_PATH . 'tpl' . DS . 'dispatch_jump.tpl',
'dispatch_error_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() 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')) { if (method_exists($this, '_initialize')) {

View File

@@ -70,14 +70,22 @@ class View
/** /**
* 设置当前模板解析的引擎 * 设置当前模板解析的引擎
* @access public * @access public
* @param array $options 引擎参数 * @param array|string $options 引擎参数
* @return $this * @return $this
*/ */
public function engine($options = []) 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); $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); $this->engine = new $class($options);
return $this; return $this;
} }