以往版本的ThinkPHP中頁面輸出的過程是讀取模板文件,然後進行模板解析(也支持調用第三方模板引擎解析),但是有一些情況,我們並沒有定義模板文件,或者把模板文件保存在數據庫裡面,那麼這種情況下進行頁面輸出的時候,我們是無法進行模板文件讀取的,ThinkPHP3.1版本則針對這樣的情況增加了內容解析輸出的功能。
內置的模板引擎也進行了完善,如果傳入的模板文件不存在的話,則會認為是傳入的模板解析內容,因此,ThinkPHP3.1版的View類和Action類也做了一些相應的改進。
display方法用於模板文件渲染輸出,show方法則用於模板內容渲染輸出,並且show方法仍然支持內容解析功能,因此,我們可以在控制器中這樣使用:
$this->assign('name','ThinkPHP'); $this->show('hello,{$name}!');
頁面輸出的結果是:
hello,ThinkPHP!
你也可以采用讀取數據庫的方式:
$content = M('Data')->where($map)->getField('content'); $this->show($content);
對於$content變量中的內容,可以和模板文件一樣支持變量和標簽庫的解析,並且也可以支持模板布局功能。
show方法也可以指定輸出編碼和類型,例如:
$this->show($content,'utf-8','text/xml');
總之,有了show方法後,可以把模板放數據庫中,對於模板的管理和更新也更加方便了。