框架引入twig模板引擎

今天我们来讲一下在框架中使用twig模板引擎,首先使用composer进行下载。

框架引入twig模板引擎_第1张图片

在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)

框架引入twig模板引擎_第2张图片

testController控制器,将视图文件名index和参数数组传入。并且在views/test目录下面有一个index.php文件。内容为{{ data }};

在浏览器中访问test控制器index方法

框架引入twig模板引擎_第3张图片

可以看到我们想要的效果。接下来说一下twig的模板继承。在views目录下建立一个layout.html,写上公共内容。

框架引入twig模板引擎_第4张图片

test/index.php写上以下内容。就实现了效果。

框架引入twig模板引擎_第5张图片

需要注意的是模板继承的文件是在你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


 

你可能感兴趣的:(php)