Zend Framework многомодульный субдомен изолированной начальной загрузки с использованием переменных среды и измененного index.php - PullRequest
0 голосов
/ 13 января 2012

Я изо всех сил пытался справиться с реализацией многомодульного приложения ZF.Я нашел целую кучу ресурсов о многомодульных приложениях, и тот факт, что в ZF

Я придумала решение, которое работает и допускает многомодульную изолированную начальную загрузку, но я хотел бы получить некоторую информацию от некоторых гуру ZF о том, есть ли потенциально непредвиденные обстоятельства, которые делают это таким образом..

Базовый домен - example.org.У меня также есть admin.example.org, dashboard.example.org и api.example.org.Я хочу, чтобы каждый из этих поддоменов отображался в свой одноименный модуль (администратор поддоменов сопоставляется с модулем admin и т. Д.).Я настраиваю виртуальный хост Apache с поддоменами как serveraliases.

Затем я также определяю следующее:

SetEnvIf Host ^admin* MODULE_TO_USE=admin

Затем в index.php у меня есть следующее:

/** Zend_Config_Ini */
require_once 'Zend/Config/Ini.php';

$config = new Zend_Config_Ini(APPLICATION_PATH . '/configs/application.ini', APPLICATION_ENV);
$config = $config->toArray();

$module = $config['resources']['frontController']['defaultModule'];
if(getenv('MODULE_TO_USE')) {
    $module = getenv('MODULE_TO_USE');
    $config['resources']['frontController']['defaultModule'] = $module;
}
$module = ucfirst($module);
$config['bootstrap']['path'] = APPLICATION_PATH . "/{$module}_Bootstrap.php";

/** Zend_Application */
require_once 'Zend/Application.php';

// Create application, bootstrap, and run
$application = new Zend_Application(
    APPLICATION_ENV,
    $config
);
$application->bootstrap()
            ->run();

Тогда вместо обычного файла Bootstrap.php у меня есть Default_Bootstrap.php, Admin_Bootstrap.php и т. Д. И т. Д. Насколько я понимаю, потому что в этом случае модули отображаются непосредственно на поддоменах,тогда использование логики для проверки именованных поддоменов в conf виртуального хоста (или, если на то пошло, .htaccess) не должно ничего сломать.Но я не гуру ZF, поэтому я не уверен.

Буду признателен за любые отзывы.

(Примечание: я знаю, что они не являются «настоящими» поддоменами, а просто псевдонимами серверов, но я назвал их поддоменами для помощи в будущих поисках, так как большинство людей будут искать «поддомены», а не «serveralises ")

1 Ответ

0 голосов
/ 14 января 2012

ZF - это использование маршрутизации имени хоста:

http://framework.zend.com/manual/en/zend.controller.router.html#zend.controller.router.routes.hostname

...