Zend Framework: имя модуля в начальной загрузке - PullRequest
1 голос
/ 31 января 2011

Мне нужно знать, как получить текущее имя модуля в файле начальной загрузки моего приложения Zend.При загрузке страницы я делаю запрос к веб-сервису, чтобы получить информацию о текущем пользователе, отправив хешированный cookie и токен.Проблема в том, что мне нужно сделать это только в двух из трех моих модулей, поэтому мне нужно иметь возможность спросить, например.

if ($ moduleName! == "Filtermodule") {// выполнить запрос}

Спасибо.

Ответы [ 2 ]

5 голосов
/ 31 января 2011

Bootstrap для подготовки приложения. Я предлагаю вам сделать такой вызов в плагине контроллера (который вы можете использовать для получения текущего вызываемого модуля) или в функции init () вашего контроллера.

Вот как получить текущий модуль через плагин контроллера:

<?php

final class YourApp_Controller_Plugin_YourPluginName extends Zend_Controller_Plugin_Abstract {

    public function preDispatch(Zend_Controller_Request_Abstract $request) {
        $module = $request->getModuleName(); //This is the module

Документы: http://framework.zend.com/manual/en/zend.controller.plugins.html

0 голосов
/ 02 января 2013

Одна вещь относительно ответа Эшли:

Если вы хотите сделать

$module = $request->getModuleName();

как можно скорее, затем сделайте это в routeShutdown ().

Как указано в документации, "routeStartup () вызывается до того, как Zend_Controller_Front вызывается на маршрутизаторе для оценки запроса относительно зарегистрированных маршрутов. RouteShutdown () вызывается после того, как маршрутизатор завершает маршрутизацию запроса."

Таким образом, зависящие от маршрутизатора параметры запроса, такие как модуль, контроллер, действие или любые другие параметры, указанные в маршруте, будут доступны в routeShutdown () и последующих функциях.

...