Twig模板引擎

2018-10-19 17:15 更新

使用Twig

Twig是一個靈活,快速,安全的PHP模板語言。它將模板編譯成經(jīng)過優(yōu)化的原始PHP代碼。Twig擁有一個Sandbox模型來檢測不可信的模板代碼。Twig由一個靈活的詞法分析器和語法分析器組成,可以讓開發(fā)人員定義自己的標簽,過濾器并創(chuàng)建自己的DSL。出于很多大型框架(比如symfony)都默認的包含了twig模板引擎,我這兒也簡單的介紹下,怎么在Idea framework中使用twig。

1.Composer安裝twig

composer require twig/twig:~1.24.1    //當前最新版

2.公共控制器加載twig

<?php
/**
 * 前臺公共控制器
 */
namespace app\home\controller;


/**
 * Class Common
 * @package app\home\controller
 */
class Common
{
    /**
     * 模板文件加載
     * @param  [type] $file 模板文件
     * @return [type]       [description]
     */
    public function display($file)
    {
        \Twig_Autoloader::register();
        $loader = new \Twig_Loader_Filesystem(APP_PATH  . MODULE . '/view');
        $twig = new \Twig_Environment($loader, array(
            'cache' => APP_PATH  . '/cache',
        ));
        $template=$twig->loadTemplate($file);
        $template->display($this->assign?$this->assign:'');
    }
    /**
     * 變量參數(shù)綁定
     * @param  [type] $var   變量
     * @param  [type] $value 值
     * @return [type]        [description]
     */
    public function assign($var,$value=null)
    {
        if(is_array($var)) {
            foreach($var as $key => $val) {
                $this->assign[$key] = $val;
            }
        } else {
            $this->assign[$var] = $value;
        }
    }

}

3.子控制器使用twig

<?php
/**
 * 首頁控制器,繼承公共控制器類
 */
namespace app\home\controller;


class Index extends Common
{
    public function say(){
        $info='PHPer';
        $this->assign('info',$info);
        $this->display('default/index/index.html');
    }
}

4.模板文件
路徑:application/home/view/default/index/index.html

<!DOCTYPE html>
<html>
<head>
    <title>twig</title>
</head>
<body>
你好,{{ info }}
</body>
</html>
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號