加载中...

视图实例化


视图功能由\think\View类配合视图驱动(模板引擎)类一起完成,目前的内置模板引擎包含PHP原生模板和Think模板引擎。

因为新版的控制器可以无需继承任何的基础类,因此在控制器中如何使用视图取决于你怎么定义控制器。

继承\think\Controller

如果你的控制器继承了\think\Controller类的话,则无需自己实例化视图类,可以直接调用控制器基础类封装的相关视图类的方法。

  1. // 渲染模板输出
  2. return $this->fetch('hello',['name'=>'thinkphp']);
下面的方法可以直接被调用: 方法 说明
fetch 渲染模板输出
display 渲染内容输出
assign 模板变量赋值
engine 初始化模板引擎

如果需要调用View类的其它方法,可以直接使用$this->view 对象:

助手函数

如果你只是需要渲染模板输出的话,可以使用系统提供的助手函数view,可以完成相同的功能:

  1. return view('hello',['name'=>'thinkphp']);

助手函数调用格式:

view('[模板文件]'[,'模板变量(数组)'][,模板替换(数组)])

无论你是否继承think\Controller类,助手函数都可以使用,也是最方便的一种。

直接实例化视图类(不建议)

任何情况下,你都可以直接实例化视图类进行渲染模板。

  1. // 实例化视图类
  2. $view = new View();
  3. // 渲染模板输出 并赋值模板变量
  4. return $view->fetch('hello',['name'=>'thinkphp']);

实例化视图类的时候,可以传入模板引擎相关配置参数,例如:

  1. // 实例化视图类
  2. $view = new View([
  3. 'type' => 'think',
  4. 'view_path' => '',
  5. 'view_suffix' => 'html',
  6. 'view_depr' => '/',
  7. ]);
  8. // 渲染模板输出 并赋值模板变量
  9. return $view->fetch('hello',['name'=>'thinkphp']);

如果需要使用应用自己扩展的模板引擎驱动,可以使用:

  1. // 实例化视图类
  2. $view = new View([
  3. 'type' => '\org\template\Think',
  4. 'view_path' => '',
  5. 'view_suffix' => 'html',
  6. 'view_depr' => '/',
  7. ]);

如果实例化不当,很容易导致配置参数无效的情况。因此如果不是必要,不建议直接实例化View类进行操作。


还没有评论.