Как получить доступ к объекту запроса вне действия в Symfony - PullRequest
2 голосов
/ 16 ноября 2011

Я хочу получить доступ к данным, хранящимся в объекте запроса, однако я вне действия.

Есть ли способ получить эти данные?

1 Ответ

3 голосов
/ 16 ноября 2011

Это полностью зависит от того, в каком слое вы находитесь.

Если вы находитесь в представлении (шаблон, частичное), автоматически заполняется переменная с именем $sf_request.

Если вы находитесь в другом месте, вы можете получить его с помощью контекстного синглтона: sfContext::getInstance()->getRequest(). Проблема в том, что если по какой-то причине контекст не был создан, то это будет проблемой. Вы можете проверить это с помощью sfContext::hasInstance(), но если нет контекста, вы, очевидно, не можете получить запрос таким образом.

Вы также можете внедрить экземпляр запроса в любой слой / объект, который вам нужен, с помощью прослушивателя на context.load_factories. Опять же, для этого требуется, чтобы слой, на котором вы его используете, делал это после того, как это событие было запущено (например, контекст был инициализирован).

По сути, я имею в виду, что на самом деле не должно быть причины для доступа к запросу вне контроллера: -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...