Это полностью зависит от того, в каком слое вы находитесь.
Если вы находитесь в представлении (шаблон, частичное), автоматически заполняется переменная с именем $sf_request
.
Если вы находитесь в другом месте, вы можете получить его с помощью контекстного синглтона: sfContext::getInstance()->getRequest()
. Проблема в том, что если по какой-то причине контекст не был создан, то это будет проблемой. Вы можете проверить это с помощью sfContext::hasInstance()
, но если нет контекста, вы, очевидно, не можете получить запрос таким образом.
Вы также можете внедрить экземпляр запроса в любой слой / объект, который вам нужен, с помощью прослушивателя на context.load_factories
. Опять же, для этого требуется, чтобы слой, на котором вы его используете, делал это после того, как это событие было запущено (например, контекст был инициализирован).
По сути, я имею в виду, что на самом деле не должно быть причины для доступа к запросу вне контроллера: -)