Symfony Controller - How to return XML response? Symfony Controller - How to return XML response? xml xml

Symfony Controller - How to return XML response?


Try adding correct header on the Response Object like:

$response->headers->set('Content-Type', 'text/xml');

Otherwise add the correct annotation (defaults) on your Controller method like this example:

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

Look at the guide for further explaination


If you have many XmlResponse to return, consider creating your own Response object:

<?phpnamespace App\Component\HttpFoundation;use Symfony\Component\HttpFoundation\Response;class XmlResponse extends Response{    public function __construct(?string $content = '', int $status = 200, array $headers = [])    {        parent::__construct($content, $status, array_merge($headers, [            'Content-Type' => 'text/xml',        ]));    }}

You can then return new XmlResponse($xmlBody); in your controllers.