我如何在另一个应用程序中join
个或多个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)。
我想我可以为应用程序app1和app2创建一个不同的index.php
,以便加载"核心"应用程序,但是,我的问题是,我不知道我怎么能访问app1或app2的控制器/动作,如果我这样做,使用例如
http://some_url.com/app1/controller_A/action_B
我使用的是Zend Framework 1.11.
编辑
我在某处看到一个名为addControllerPath
的函数。谁能告诉我,它是否能达到我的目的?
您可以获得服务器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'));