摘要:原理使用模板引擎的好處是數(shù)據(jù)和視圖分離。對(duì)于循環(huán)語句怎么辦呢這個(gè)的話,請(qǐng)看流程控制的替代語法
原理
使用模板引擎的好處是數(shù)據(jù)和視圖分離。一個(gè)簡單的PHP模板引擎原理是
extract數(shù)組($data),使key對(duì)應(yīng)的變量可以在此作用域起效
打開輸出控制緩沖(ob_start)
include模板文件,include遇到html的內(nèi)容會(huì)輸出,但是因?yàn)榇蜷_了緩沖,內(nèi)容輸出到了緩沖中
ob_get_contents()讀取緩沖中內(nèi)容,然后關(guān)閉緩沖ob_end_clean()
實(shí)現(xiàn)封裝一個(gè)Template類
templatePath = $path; } /** * 設(shè)置模板變量 * @param $key string | array * @param $value */ public function assign($key, $value) { if(is_array($key)) { $this->data = array_merge($this->data, $key); } elseif(is_string($key)) { $this->data[$key] = $value; } } /** * 渲染模板 * @param $template * @return string */ public function display($template) { extract($this->data); ob_start(); include ($this->templatePath . $template); $res = ob_get_contents(); ob_end_clean(); return $res; } }測試
test.php
setTemplatePath(__DIR__ . "/template/"); $template->assign("name", "salamander"); $res = $template->display("index.html"); echo $res;
template目錄下index.html文件
Tip模板測試 =$name?>
為什么display要返回一個(gè)字符串呢?原因是為了更好的控制,嵌入到控制器類中。
對(duì)于循環(huán)語句怎么辦呢?這個(gè)的話,請(qǐng)看流程控制的替代語法
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/26083.html
改進(jìn) 緊接上一篇文章Just for fun——PHP框架之簡單的路由器(1)。代碼下載 效率不高原因 對(duì)于以下合并的正則 ~^(?: /user/([^/]+)/(d+) | /user/(d+) | /user/([^/]+) )$~x 最終匹配的是分組中的某一個(gè),我們需要的子匹配也是那個(gè)分組中的,然而從結(jié)果看 preg_match($regex, /user/niki...
摘要:的話,是一個(gè)遵循規(guī)范微型的框架,作者這樣說大致意思的核心工作分發(fā)了請(qǐng)求,然后調(diào)用回調(diào)函數(shù),返回一個(gè)對(duì)象。執(zhí)行的方法時(shí),我們從中取出的依賴,這時(shí)候,注冊(cè)的回調(diào)函數(shù)被調(diào)用,返回實(shí)例。 Slim Slim的話,是一個(gè)遵循PSR (PSR-7)規(guī)范微型的框架,作者這樣說: Slim is a PHP micro framework that helps you quickly write si...
摘要:路由路由的功能就是分發(fā)請(qǐng)求到不同的控制器,基于的原理就是正則匹配。 路由 路由的功能就是分發(fā)請(qǐng)求到不同的控制器,基于的原理就是正則匹配。接下來呢,我們實(shí)現(xiàn)一個(gè)簡單的路由器,實(shí)現(xiàn)的能力是 對(duì)于靜態(tài)的路由(沒占位符的),正確調(diào)用callback 對(duì)于有占位符的路由,正確調(diào)用callback時(shí)傳入占位符參數(shù),譬如對(duì)于路由:/user/{id},當(dāng)請(qǐng)求為/user/23時(shí),傳入?yún)?shù)$args...
摘要:總之,是用來管理多個(gè)容器的,用都會(huì)寫一個(gè)開啟所有服務(wù)關(guān)閉所有服務(wù)上面說了,關(guān)鍵是編排好,以下就是的目錄結(jié)構(gòu)訪問在目錄下運(yùn)行命令,在瀏覽器訪問可以看到講解和都是用了官方的鏡像,而是從本地構(gòu)建的。 Docker Docker 是一個(gè)開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個(gè)可移植的容器中,然后發(fā)布到任何流行的 Linux機(jī)器上,也可以實(shí)現(xiàn)虛擬化。容器是完全使用沙箱機(jī)制,...
閱讀 1470·2019-08-30 15:55
閱讀 1172·2019-08-30 15:52
閱讀 1282·2019-08-29 13:53
閱讀 1465·2019-08-29 11:19
閱讀 2964·2019-08-26 13:29
閱讀 527·2019-08-26 11:33
閱讀 2587·2019-08-23 17:20
閱讀 1022·2019-08-23 14:14