Quelle est la différence entre l'utilisation de .html.twig et de .twig? Existe-t-il une norme, est-ce spécifique au cadre ou est-ce simplement la préférence de l'utilisateur?Y at-il une différence dans l'utilisation de .html.twig vs .twig
Répondre
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.
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.
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 <div>I'm happy<div>
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.
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
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