国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Just for fun——PHP框架之簡單的模板引擎

X1nFLY / 2554人閱讀

摘要:原理使用模板引擎的好處是數(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

為什么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

相關(guān)文章

  • Just for fun——PHP框架簡單路由器(2)

    改進(jìn) 緊接上一篇文章Just for fun——PHP框架之簡單的路由器(1)。代碼下載 效率不高原因 對(duì)于以下合并的正則 ~^(?: /user/([^/]+)/(d+) | /user/(d+) | /user/([^/]+) )$~x 最終匹配的是分組中的某一個(gè),我們需要的子匹配也是那個(gè)分組中的,然而從結(jié)果看 preg_match($regex, /user/niki...

    tomato 評(píng)論0 收藏0
  • Just for fun——Slim借力Swoole

    摘要:的話,是一個(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...

    leejan97 評(píng)論0 收藏0
  • Just for fun——PHP框架簡單路由器(1)

    摘要:路由路由的功能就是分發(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...

    smallStone 評(píng)論0 收藏0
  • Just for fun——Docker做個(gè)NMP環(huán)境

    摘要:總之,是用來管理多個(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ī)制,...

    用戶84 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

X1nFLY

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<