0

我怎麼能join 2個或更多的zend應用程序內的另一個?
換句話說,讓我們假設我有這樣的結構:根據請求加入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相同的東西,但應用程序上存在額外的鏈接/操作。

http://some_url.com/app2(core + app2)應該會發生同樣的情況。

我想我可以爲應用程序app1和app2創建一個不同的index.php以加載「核心」應用程序,但是,我的問題是我不知道如何訪問app1或app2的控制器/操作if我這樣做,使用例如,
http://some_url.com/app1/controller_A/action_B

我使用Zend Framework 1.11。

編輯

我看到某處一個名爲addControllerPath功能。任何人都可以告訴我它是否適合我想要的東西?

+0

您是否使用ZF1或ZF2了Zend默認選擇你的應用程序? – hohner

+0

對不起,我忘了說我正在使用ZF 1.11 –

回答

2

你可以得到服務器的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')); 
} 

代替

// Define path to application directory 
defined('APPLICATION_PATH') 
    || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application')); 
+0

對,但是當我選擇正確的'APPLICATION_PATH'後,如果它不在之前指定的'APPLICATION_PATH'中,我怎麼能訪問其他應用程序的控制器? –

+0

此解決方案適用於不同的應用程序(它們之間沒有交互)。 你爲什麼不使用模塊? (模塊核心,app1,app2 ...) – Rafael

+0

不幸的是,我不能使用modules = S。如果'core1'上不存在任何可以讓我訪問'app1'內的控制器的解決方案?我不能覆蓋Zend Autoloader來做到這一點嗎? –