2010-03-28 2 views
0

В классической установке Zend Framework MVC, кажется, есть доступ к общей _request объекта изнутри экземпляра модели/вид/контроллер, как указано here:обработка ввода с Zend Framework вне MVC

$this->_request->getPost('variablename'); 

является это запросить объект как-нибудь в настройке, отличной от MVC?

Если да: как бы инициализировать и получить к нему доступ?

ответ

2

Я не использовал бы объекты Zend_Controller_Request_* вне конструкции MVC ZF (, даже если возможно). Вы можете видеть по имени класса уже, что оно принадлежит к пакету контроллера, а оно API предоставляет ряд методов, которые полностью нацелены на использование в MVC ZF, и они наследуются всеми подтипами.

Это нормально при использовании MVC ZF, но для использования вне этого объекта Request слишком много. Идея объекта Request состоит в том, чтобы инкапсулировать и, возможно, отделить текущую среду запроса от Superglobals (которую ZF не делает, она просто сидит сверху). На мой взгляд, все эти дополнительные материалы о модулях, контроллерах и действиях не должны быть частью этого. Это имеет смысл только в ZF.

Написание объекта «Запрос» не сложно, поэтому я уверен, что вы можете легко найти более легкую версию. Вот некоторые основные примеры:

В конце концов, это ваш выбор, хотя.

+1

У меня было такое же беспокойство, когда читал «Контроллер». Я, скорее всего, скачу свое или воспользуюсь одним из тех, на которые вы ссылаетесь - они выглядят очень чистыми и приятными. Благодаря! –

+0

(Будет +1, но из голосов на сегодня.) –

1

Передний контроллер инициализирует объекты запроса и ответа и передает их маршрутизатору. Маршрутизатор вызывает запрошенное действие и (обычно) добавляет возвращенный контент в ответ. Таким образом, эти объекты доступны на уровне Controller из MVC.

Edit:
FrontController использует следующий код для установки запроса:

$request = new Zend_Controller_Request_Http(); 

Использование объекта запроса этот путь очень straighforward, поэтому использовать его снаружи от контроллера Zend или Заявке модуль не должен быть проблемой. Zend_Controller_Request_Http использует Zend_Uri.

+0

но что, если я вообще не использую шаблон MVC? Можно ли каким-то образом использовать объект '_request'? Это не очень много, но я использую ZF в качестве библиотеки компонентов в любом случае в проекте, поэтому было бы неплохо переключиться, возможно, в сочетании с функциями Zend_Filter_Input. –

+0

@Pekka: проверьте отредактированный ответ. – erenon

Смежные вопросы