Как определить информацию о маршрутизации при загрузке плагинов фронт-контроллера? - PullRequest
0 голосов
/ 25 января 2010

Я недавно добавил модуль администратора в свое приложение. Это приложение имеет отдельную аутентификацию от основного сайта (инструменты администрирования могут позже использоваться на разных сайтах для разных приложений, а пользователи администратора хранятся в отдельной таблице), и это вызывает проблемы. Из-за одноэлементной природы Zend_Auth я перезаписываю свой экземпляр Zend_Auth в критические моменты и взрываю свое приложение. Итак ...

Я хотел бы попытаться определить, какой модуль запрашивается в начальной загрузке, и загрузить только соответствующий плагин фронт-контроллера. Есть ли способ определить, какой модуль запрашивается в этой точке выполнения, или есть лучшее решение? Как? Ниже приведен метод начальной загрузки для инициализации плагинов фронт-контроллера.

защищенная функция _initFrontControllerPluginWithOptions () { $ This-> самозагрузки (массив ( 'FrontController', 'ResourceLoader', «Сессии», ));

    //get site specifics 
    $sessionInfo = $this->getOption("resources");

    if ($namespace = $sessionInfo['session']['name']) {
        $data = array("cookieName" => $namespace);
    } else {
        throw new Exception("Authplugin can't find session namespace");
    }

    $frontController = $this->getResource("frontController");

    //register plugins
    $frontController->registerPlugin(new GS_Admin_Plugin_Auth_Admin($data));
    $frontController->registerPlugin(new GS_Model_Plugin_Auth_User($data));
}

1 Ответ

0 голосов
/ 25 января 2010

Это не дает прямого ответа на ваш вопрос, но в прошлом я справлялся с такой ситуацией, когда для приложения было создано несколько точек входа, т.е. 2 или более файлов index.php. В каждом отдельном index.php вы можете установить флаг с определением, в котором указано, откуда программа входит. Исходя из этого, вы можете загрузить различные плагины контроллера.

Примером настройки для вашей общей папки может быть:

/index.php
/admin/index.php

Из обоих этих вариантов вы по-прежнему будете называть один и тот же класс Bootstrap.

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