Symfony2 получает параметры маршрута (аргументы контроллера против запроса)

Какой доступ к параметрам маршрута выполняется быстрее?

  • Введите параметры маршрута в качестве аргументов контроллера
  • Получение параметров маршрута от $this->getRequest()->get('param')

А как насчет объекта запроса? Лучше всего поместить объект запроса в качестве параметра контроллера или вызвать метод getRequest() на объекте контроллера?

Ответ 1

Можно утверждать, что, поскольку вам нужно вытащить объект Request из контейнера, это более медленный подход, но я сделал оба, и разница незначительна. Когда вам нужен объект Request, лучше поместить его в качестве аргумента метода контроллера, потому что вы его получите немедленно, а PHP Type Hinting предоставит дополнительную информацию (автозаполнение и т.д.) В достойных IDE (я лично рекомендую PHPStorm). Это относится также к другим аргументам метода контроллера, вам даются прямые переменные, нет необходимости дважды их вытягивать из других мест.

class SthController extends Controller
  {
  public function indexAction(Request $request, $arg1, $arg2)
    {
    // you have $request object with type hint and all goodness
    }
  }

Ответ 2

Я думаю, вы должны использовать метод getRequest(), потому что он более динамичен!