Twig模板引擎

使用Twig

Twig是一个灵活,快速,安全的PHP模板语言。它将模板编译成经过优化的原始PHP代码。Twig拥有一个Sandbox模型来检测不可信的模板代码。Twig由一个灵活的词法分析器和语法分析器组成,可以让开发人员定义自己的标签,过滤器并创建自己的DSL。出于很多大型框架(比如symfony)都默认的包含了twig模板引擎,我这儿也简单的介绍下,怎么在Idea framework中使用twig。

1.Composer安装twig

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

2.公共控制器加载twig

<?php
/**
 * 前台公共控制器
 */
namespace apphomecontroller;


/**
 * Class Common
 * @package apphomecontroller
 */
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:"");
    }
    /**
     * 变量参数绑定
     * @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 apphomecontroller;


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>
文章导航