Обработка ввода с Zend Framework вне MVC - PullRequest
0 голосов
/ 28 марта 2010

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

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

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

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

Ответы [ 2 ]

2 голосов
/ 29 марта 2010

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

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

Написание объекта Request не сложно, поэтому я уверен, что вы легко можете придумать более легкую версию. Вот несколько основных примеров:

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

1 голос
/ 28 марта 2010

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

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

$request = new Zend_Controller_Request_Http();

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

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