根据要求加入zend应用程序

时间:2013-01-12 14:33:43

标签: php zend-framework module content-management-system zend-application

我怎样才能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(核心+ app2)也应该发生同样的事情。

我认为我可以为应用程序app1和app2创建不同的index.php以加载“核心”应用程序但是,我的问题是我不知道如何访问app1的控制器/操作或app2,如果我这样做,例如,使用http://some_url.com/app1/controller_A/action_B

我正在使用Zend Framework 1.11。

修改

我在某处找到了一个名为addControllerPath的函数。谁能告诉我它是否适用于我想要的东西?

1 个答案:

答案 0 :(得分: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'));
}

而不是Zend默认

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