1、直接實例化視圖類
1、視圖類: thinkphp/library/think/View.php;
2、命名空間: use think\View;
3、實例化: 動態(tài) new View(); 靜態(tài) View::instance();
4括细、常用方法: fetch()渲染模板, display()渲染內容, assign()模板賦值
在index/controller/index.php中:
<?php
namespace app\index\controller;
use think\View;
class Index
{
public function index()
{
//動態(tài)創(chuàng)建
//$view = new View();
//靜態(tài)創(chuàng)建
$view = View::instance();
//模板賦值
$view -> assign('domain','www.php.cn');
//渲染模板
return $view -> fetch();
}
}
?>
在application\index\view\index\index.html中:
<p>網(wǎng)站域名:<span style="color:red">{$domain}</span></p>
<p>網(wǎng)站名稱:<span style="color:red">{$siteName}</span></p>
2、繼承控制器基類Controller
1戚啥、控制器類:thinkphp/library/think/Controller.php;
2奋单、命名空間:use think\Controller;
3、實例化:$this->view;//可訪問View類所有屬性或方法
4猫十、常用方法:$this->fetch()渲染模板,$this->display()渲染內容,$this->assign()模板賦值,$this->engine()模板引擎
在index.php中:
<?php
namespace app\index\controller;
use think\Controller;
class Index extends Controller
{
public function index()
{
//$this->view===>視圖對象
//$this->view->assign('siteName','php中文網(wǎng)');
//$this->view->assign('domain','www.php.cn');
$this->assign('siteName','php中文網(wǎng)'); //用這種就可以览濒,省事
$this->assign('domain','www.php.cn'); //用這種就可以,省事
//渲染模板
//return $this->view->fetch();
return $this->fetch(); //這樣就行了
}
}
?>
3拖云、助手函數(shù)view()
1贷笛、不用繼承Controller基類,不用實例化View類宙项,都可以使用乏苦;
2、僅適合于模板渲染,功能單一汇荐,不能加載配置洞就;
3、語法:view([模板文件],[模板變量數(shù)組],[模板替換數(shù)組]);
4掀淘、使用方法實例:view('user',['name'=>'tp5'],['SITE'=>'php.cn']);
所以旬蟋,index.php文件夾中就變?yōu)榱耍?/p>
<?php
namespace app\index\controller;
class Index
{
public function index()
{
return view('index',[
'domain'=>'php.cn',
'siteName'=>'php中文網(wǎng)'
]);
}
}
?>
總結:在控制器使用視圖來調用模板,有三種方法:實例化視圖類的規(guī)范模式革娄,基類繼承的經(jīng)典模式咖为,助手函數(shù)的快捷模式,新人推薦基類繼承方式稠腊,但長遠來看,實例化視圖類應該是發(fā)展趨勢鸣哀,助手函數(shù)早晚會消失~~~