2012-06-25 4 views
6

Abhängig von dem Format der Anfrage Symfony2 gibt eine Antwort des gleichen Typs (html, css, json, etc.). Das ist sehr bemerkenswert. Aber wenn ich eine Vorlage in einem definierten Format mache und das Escape-Zeichen in diesem Kontext ausführe, aber schließlich die Seite in einem anderen Format gerendert wird, riskiert das nicht, eine Ausgabe gefährlich zu erzeugen?Rendern Antworten in einem Format erwartet

Beispiel: http://symfony.com/it/doc/current/book/index.html?_format=json

Es besteht die Gefahr, ungewollt eine Ressource erstellen, die gefährliche Ausgang/unerwartet enthalten? Dies ist beabsichtigt? Warum?

Antwort

6

Im Fall der offiziellen Symfony2-Dokumentation denke ich, dass es absichtlich ist. Aber wenn Sie eine Vorlage in einem definierten Format machen und das Escape-Zeichen in diesem Zusammenhang ausgeführt werden, dann können Sie die Anfrage gestattet Formate wie folgt erzwingen:

article_show: 
    pattern: /articles/{culture}/{year}/{title}.{_format} 
    defaults: { _controller: AcmeDemoBundle:Article:show, _format: html } 
    requirements: 
    culture: en|fr 
    _format: html|rss 
    year:  \d+ 

Dieses Beispiel unterstreicht die besondere _format Routingparameter. Wenn Sie diesen Parameter verwenden, wird der übereinstimmende Wert zum "Anfrageformat" des Request-Objekts. Letztendlich wird das Anfrageformat für solche Dinge verwendet, wie z. B. das Setzen des Inhaltstyps der Antwort (z. B. wird ein JSON-Anfrageformat in einen Inhaltstyp der Anwendung/JSON übersetzt). Es kann auch im Controller verwendet werden, um für jeden Wert von _format eine andere Vorlage zu rendern. Der _format-Parameter ist eine sehr leistungsfähige Möglichkeit, denselben Inhalt in verschiedenen Formaten zu rendern. Read more...

Verwandte Themen