使用.html.twig与.twig有区别吗?

时间:2017-10-03 19:08:33

标签: php symfony twig slim

使用.html.twig和.twig有什么区别?是否有某种标准,是框架特定的,还是仅仅是用户偏好?

3 个答案:

答案 0 :(得分:4)

在Symfony下,您可以自动提供不同的格式。因此,您可以创建test.json.twigtest.xml.twig等文件。如果您在控制器中定义了所有扩展,则可以在一个操作下提供所有格式。

例如:

/**
 * @Route("/hello/{name}.{_format}", defaults={"_format"="html"}, name="_demo_hello")
 * @Template()
 */
public function helloAction($name) {
    return array('name' => $name);
}

像这样的东西。因此,您可以使用路径中的格式来定义响应格式。

答案 1 :(得分:3)

根据path

"这只是一种组织策略,用于需要将相同资源呈现为HTML(index.html.twig),XML(index.xml.twig)或任何其他格式的情况。&#34 ;

所以听起来这是用户偏好,但是遵循任何一种方式都是一个很好的标准。

答案 2 :(得分:3)

唯一的区别是自动转义的行为。

想象一下,您有一个var变量,其中包含:<div>I'm happy</div>

index.twig{{ var }}将呈现<div>I'm happy</div>

index.html.twig上,{{ var }}将呈现&lt;div&gt;I&#039;m happy&lt;div&gt;

index.js.twig上,{{ var }}将呈现\x3Cdiv\x3EI\x27m\x20happy\x3Cdiv\x3E

等等。

始终使用正确的扩展名以避免任何XSS漏洞,并始终明智地使用|raw,因为它与此扩展的隐式保护重叠。