Присоединиться к 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'));