Присоединиться к Zend приложениям по запросу

Как я мог join 2 или более приложений Zend внутри другого?
Другими словами, давайте предположим, что у меня есть эта структура:

    /core
        /application
        /public
        ...
    /app1
        /application
        /public
        ...
    /app2
        /application
        /public
        ...

Когда доступ http://some_url.com/core, я хочу показать core приложения, но, когда я захожу на http://some_url.com/app1, я хочу показать core + app1 приложение.
По сути, он должен показывать то же самое, что и http://some_url.com/core но с дополнительными ссылками / действиями, которые существуют на app1 приложение.

То же самое должно произойти с http://some_url.com/app2 (core + app2).

Я думал, что смогу создать другой index.php для приложений app1 и app2 для загрузки "основного" приложения, но моя проблема в том, что я не знаю, как я могу получить доступ к контроллеру / действию app1 или app2, если я сделаю это, используя, например,
http://some_url.com/app1/controller_A/action_B

Я использую Zend Framework 1.11.

РЕДАКТИРОВАТЬ

Я где-то видел функцию с именем addControllerPath, Может кто-нибудь сказать мне, будет ли это работать для того, что я хочу?

1 ответ

Решение

Вы можете получить URI сервера и выбрать свое приложение в index.php

// Define path to application directory
$uri = $_SERVER["REQUEST_URI"];
if (strpos($uri, 'core') == 1) {
    defined('APPLICATION_PATH')
        || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../core'));
}
elseif (strpos($uri, 'app1') == 1) {
    defined('APPLICATION_PATH')
        || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../app1'));
}
elseif (strpos($uri, 'app2') == 1) {
    defined('APPLICATION_PATH')
        || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../app2'));
}
else {
    defined('APPLICATION_PATH')
        || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../default'));
}

вместо Zend по умолчанию

// Define path to application directory
defined('APPLICATION_PATH')
    || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));
Другие вопросы по тегам