Skip to content

Commit

Permalink
改进
Browse files Browse the repository at this point in the history
  • Loading branch information
liu21st committed Jan 20, 2019
1 parent 6f337c5 commit c36328e
Show file tree
Hide file tree
Showing 8 changed files with 135 additions and 262 deletions.
2 changes: 1 addition & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
},
"extra": {
"think-config": {
"view": "src/config/view.php"
"template": "src/config/template.php"
}
}
}
2 changes: 1 addition & 1 deletion src/View.php
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ public function __construct(array $options = [])
// 初始化模板引擎
$type = $options['type'] ?? 'think';
unset($options['type']);
$this->engine($type, $optons);
$this->engine($type, $options);

return $this;
}
Expand Down
97 changes: 97 additions & 0 deletions src/ViewController.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006~2018 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: liu21st <liu21st@gmail.com>
// +----------------------------------------------------------------------
declare (strict_types = 1);

namespace think;

use think\Controller;

class ViewController extends Controller
{
/**
* 视图类实例
* @var \think\View
*/
protected $view;

/**
* 构造方法
* @access public
* @param App $app 应用对象
*/
public function __construct(App $app)
{
parent::__construct($app);
$this->view = $this->app['view'];
}

/**
* 加载模板输出
* @access protected
* @param string $template 模板文件名
* @return mixed
*/
protected function fetch(string $template = '')
{
return $this->view->fetch($template);
}

/**
* 渲染内容输出
* @access protected
* @param string $content 模板内容
* @return mixed
*/
protected function display(string $content = '')
{
return $this->view->display($content);
}

/**
* 模板变量赋值
* @access protected
* @param array $vars 模板变量
* @return $this
*/
protected function assign(array $vars)
{
$this->view->assign($vars);

return $this;
}

/**
* 视图过滤
* @access protected
* @param Callable $filter 过滤方法或闭包
* @return $this
*/
protected function filter(callable $filter)
{
$this->view->filter($filter);

return $this;
}

/**
* 初始化模板引擎
* @access protected
* @param array|string $engine 引擎参数
* @return $this
*/
protected function engine($engine)
{
$this->view->engine($engine);

return $this;
}

}
35 changes: 35 additions & 0 deletions src/config/template.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006~2018 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: liu21st <liu21st@gmail.com>
// +----------------------------------------------------------------------

// +----------------------------------------------------------------------
// | 模板设置
// +----------------------------------------------------------------------

return [
// 模板引擎类型 支持 php think 支持扩展
'type' => 'Think',
// 默认模板渲染规则 1 解析为小写+下划线 2 全部转换小写 3 保持操作方法
'auto_rule' => 1,
// 模板路径
'view_path' => '',
// 模板后缀
'view_suffix' => 'html',
// 模板文件名分隔符
'view_depr' => DIRECTORY_SEPARATOR,
// 模板引擎普通标签开始标记
'tpl_begin' => '{',
// 模板引擎普通标签结束标记
'tpl_end' => '}',
// 标签库标签开始标记
'taglib_begin' => '{',
// 标签库标签结束标记
'taglib_end' => '}',
];
137 changes: 0 additions & 137 deletions src/response/Download.php

This file was deleted.

2 changes: 0 additions & 2 deletions src/response/Jump.php
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,7 @@ class Jump extends Response
*/
protected function output($data): string
{
$config = Container::pull('config');
return Container::pull('view')
->init($config->pull('template'))
->assign($data)
->fetch($this->options['jump_template']);
}
Expand Down
6 changes: 1 addition & 5 deletions src/response/View.php
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,7 @@ class View extends Response
protected function output($data): string
{
// 渲染模板输出
$config = Container::pull('config');
return Container::pull('view')
->init($config->pull('template'))
->filter($this->filter)
->assign($this->vars)
->fetch($data);
Expand Down Expand Up @@ -87,9 +85,7 @@ public function filter(callable $filter = null)
*/
public function exists(string $name): bool
{
return Container::pull('view')
->init(Container::pull('config')->pull('template'))
->exists($name);
return Container::pull('view')->exists($name);
}

}
Loading

0 comments on commit c36328e

Please sign in to comment.