2017-10-03 2 views

Répondre

3

Selon Symfony Documentation

«c'est tout simplement une tactique organisationnelle utilisée dans le cas où la même ressource doit être rendu en HTML (index.html.twig), XML (index.xml.twig), ou tout autre format."

Donc, il semble que ce soit la préférence de l'utilisateur, mais un bon standard à suivre de toute façon.

4

Sous Symfony vous avez la possibilité de livrer différents formats automatiquement. Ainsi, vous pouvez créer des fichiers comme test.json.twig, test.xml.twig par exemple. Si vous définissez toutes les extensions de votre contrôleur, vous pouvez livrer tous ces formats en une seule action.

Par exemple:

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

Quelque chose comme ça. Vous pouvez donc utiliser le format de votre itinéraire pour définir le format de réponse.

+0

Donc, si vous tirez dans une brindille dans une application mince ou simplement en utilisant la brindille api il n'y a aucun avantage à utiliser .html.twig? – moe

+0

C'est la manière habituelle d'utiliser les modèles de brindilles et les formats. Donc vous devriez l'utiliser. Pour les programmeurs, il est très bon de voir quel format a le fichier. Mais c'est votre choix comment vous l'utiliseriez. Donc je préférerais utiliser le format dans le nom de fichier. – Stony

3

La seule différence est le comportement de l'échappement automatique. Imaginez que vous ayez une variable var contenant: <div>I'm happy</div>.

Sur index.twig, {{ var }} affichera <div>I'm happy</div>.

Sur index.html.twig, {{ var }} va rendre &lt;div&gt;I&#039;m happy&lt;div&gt;

Sur index.js.twig, {{ var }} va rendre \x3Cdiv\x3EI\x27m\x20happy\x3Cdiv\x3E

Et ainsi de suite.

Utilisez toujours la bonne extension pour éviter toute vulnérabilité XSS, et utilisez toujours judicieusement |raw car elle chevauche la protection implicite de cette extension.