Как вернуть xml или json ответ с помощью symfony 2 & 3

XML

Чтобы вернуть xml-ответ в контроллере Symfony, нам нужно использовать компонент Response в нашем контроллере, а затем мы просто изменим заголовки ответа, чтобы отправить ему определенный формат (в данном случае xml).

namespace ourcodeworld\mybundleBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Response;
class myClass extends Controller
{
public function xmlresponseAction(){
$xml = ' ';
$xml .= 'Hello';
$response = new Response($xml);
$response->headers->set('Content-Type', 'xml');
return $response;
}
}

Вы можете использовать функцию php simplexmlelement, чтобы создать свой xml-узел в соответствии с вашими потребностями или получить содержимое представления ветки.

JSON

С версией symfony> 2.5 вы можете использовать следующий код для возврата ответа json в свой контроллер, вам нужно только включить класс JsonResponse и вернуть его как обычный ответ.

namespace ourcodeworld\mybundleBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\JsonResponse;
class myClass extends Controller
{
public function jsonresponseAction(){
$myresponse = array(
'success' => true,
'content' => array(
'main_content' => 'A long string',
'secondary_content' => 'another string'
)
);
return new JsonResponse($myresponse);
}
}

Если вы используете более низкую версию Symfony, вы можете использовать следующий код:

namespace ourcodeworld\mybundleBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Response;
class myClass extends Controller
{
public function jsonresponseAction(){
$myresponse = array(
'success' => true,
'content' => array(
'main_content' => 'A long string',
'secondary_content' => 'another string'
)
);
$finalResponse = json_encode($myresponse);
$response = new Response($finalResponse);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
}

Повеселись !

Ссылка на основную публикацию