php框架symfony学习。(4)twig

Twig模板,一个非常小巧的模板并且也很精致。slim框架里也是用的twig模板。

多数前端工程师更加喜欢使用模板,因为模板通常来说有着与生俱来的有点,比如可以跨语言,而且功能相对于普通HTML的文件要强大些。通常有一些便捷功能,比原生php方便一些。

如何使用一个模板。  

模板对应路径为Bundle/Resources/views目录下,在views中建立子目录,通常是和控制器名字相对应的。

在控制器中用$this->render()方法渲染模板。

第一个参数是模板地址路径,第二参数是在模板中使用的变量数组。

命名:通常来说命名为xxx.html.twig文件。(twig的教程网上也有,官网也有教学)

{{ }}双花括号里面是变量。把一个字符串值赋值给模板


    

{{msg}}

再写一个Action,其实就是一个Response啦 

public function msgAction(){
    $msg = "这里面有猫腻";
return $this->render('MyBundle:Default:msg.html.twig' array("msg=>$msg") );
}

然后让/msg路由来执行这个动作

my_msgpage:
    path: /msg
    defaults:{_controller:MyBundle:Default:msg}
浏览器访问 localhost/sf/star/web/app_dev.php/msg  就可以使用模板传递了变量msg 也就是显示 这里面有猫腻


具体语法就不写了,官网上讲的很详细。

绝大多数情况下,模板中会有很多通用的元素,比如header或者footer..人们常常会考虑如何复用这些元素,写一个单独的header或者footer模板,在页面上导入他们,但其实这样的做法实现效果并不很佳。

现在绝大多数的想法是通过模板的继承,也就是在父模板中留出相应的block,而且这些block可以被继承它的子模板进行重写或保留它现有,子模板只需要写它所具有的那些内容就可以了。这样的话,会保留一个更加统一的风格。

父模板会使用base.html.twig这样的命名。方便引用,通常放在app/Resources/views目录下。

父模板中会有一个block模块

{% block %}

....

{% endblock %}


你可能感兴趣的:(php)