На Symfony2 плохая практика - использовать контроллер, который возвращает значение отсутствия ответа для другого контроллера? - PullRequest
1 голос
/ 16 марта 2012

Я считаю, что поток Symfony2 выглядит следующим образом: Запрос -> Контроллер -> Ответ.

На самом деле, с этим кодом, MessageController не возвращает объект ответа, а только значение для другогоКонтроллер:

MessageController из Compagny/MessageBundle:

<?php
class MessageController extends Controller
{
    public function getAction()
    {
        $message = "I display this message";
        return $message; // It's not a new Response object, it returns only a value
    }
}

InterfaceController из Compagny/InterfaceBundle:

<?php
class InterfaceController extends Controller
{
    public function indexAction()
    {
        $data = $this->forward('MessageBundle:Message:get');
        $response = new Response($data);
        return $response; // This one return a Response object
    }
}

Является ли этот код плохой практикой?

1 Ответ

6 голосов
/ 16 марта 2012

Да. Потому что, если вы позже решите использовать Message :: get напрямую, вы не сможете это сделать или исправить без изменения InterfaceController.

Я предлагаю это:

class MessageController extends Controller
{
    public function getAction()
    {
        $message = "I display this message";
        return $this->createResponse($message);
    }
}
class InterfaceController extends Controller
{
    public function indexAction()
    {
        $forwardedResponse = $this->forward('MessageBundle:Message:get');
        $response = new Response($forwardedResponse->getContent());
        return $response; // This one return a Response object
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...