今天我们来讲一下在框架中使用twig模板引擎,首先使用composer进行下载。
在composer.json文件中添加肩头所指的内容,进入文件所在的目录的命令行,运行composer update,twig就下载完成了。
接下来我们来进行使用。在所有控制器的公共父类Controller的render方法中,我们改为以下内容。
public functionrender($file,$array=array())
{
$name= strtolower(get_class($this));
$controller= substr($name,0,strpos($name,'controller'));
$filename= VIEW_PATH."/".$controller."/".$file;
Twig_Autoloader::register();
$loader= new Twig_loader_Filesystem(VIEW_PATH));
$twig= new Twig_Environment($loader,array(
'cache'=> ROOT_DIR.'/cache',
'debug'=> DEBUG,
));
$template= $twig->loadTemplate($controller.’/’.$file.".php");
$template->display($array);
}
其中我们获取调用render方法的类名,并取出目录关键字,我们每个控制器的目录视图文件都是放在有规律的目录中。然后初始化twig模板引擎。设定目录路径,然后加载模板,传入参数并展示。我们来看一下控制器中调用render方法的方式和效果。(注意,Linux使用时要将Twig_loader_Filesystem改为Twig_Loader_Filesystem)
testController控制器,将视图文件名index和参数数组传入。并且在views/test目录下面有一个index.php文件。内容为{{ data }};
在浏览器中访问test控制器index方法
可以看到我们想要的效果。接下来说一下twig的模板继承。在views目录下建立一个layout.html,写上公共内容。
test/index.php写上以下内容。就实现了效果。
需要注意的是模板继承的文件是在你newTwig_loader_Filesystem(VIEW_PATH);里面的参数当做目录在根目录下寻找。
twig模板引擎的学习
twig 的tags学习 之一
http://blog.csdn.net/jiaochangyun/article/details/7178372
twig 的tags学习 之二
http://blog.csdn.net/jiaochangyun/article/details/7178896
twig 的tags学习 之三 完结
http://blog.csdn.net/jiaochangyun/article/details/7180037