如何设置Codeigniter来处理具有共享ci库的多个项目?

时间:2009-10-08 20:36:45

标签: php codeigniter subproject

我见过几个CI实现示例,声称可以将项目文件夹放在Codeigniter的“applications”文件夹下。

然而,我无法像承诺的那样看到这项工作。

以下是我所做的以及我想做的事情 - 也许你可以提供帮助。为了争论,我的文档根目录是/ www /(它不是,但为了简单起见,让我们使用它)

我已将codeigniter核心放在/ www / corelib / codeigniter

我已将codeigniter系统文件夹放在/ www / ci_system

我已将应用程序目录放在/ www / applications

我把我的“入口点”放在/ www / dd

现在让我说我有两个项目:“dataentry”和“cpanel”

我的想法是,我可以去

h ** p:// mydomain / dd / dataentry //用于dataentry应用程序和

h ** p:// mydomain / dd / cpanel //用于cpanel应用程序。

如果我像这样组织dataentry和cpanel目录:

/网络/应用/控制器/的DataEntry

/网络/应用/控制器/的cPanel

/网络/应用/模型/的DataEntry

/网络/应用/模型/的cPanel

/网络/应用/视图/的DataEntry

/网络/应用/视图/的cPanel

我可以让这个工作得很好。但是,我想要做的是将模型和视图保持在与控制器相同的级别,以便我有以下内容:

/网络/应用/的DataEntry /控制器

/网络/应用/的DataEntry /模型

/网络/应用/的DataEntry /视图

/网络/应用/的cPanel /控制器

/网络/应用/的cPanel /模型

/网络/应用/的cPanel /视图

这似乎不起作用。

有什么建议吗?

-CF

2 个答案:

答案 0 :(得分:0)

每个应用程序(“dataentry”和“cpanel”)是否都有自己的主index.php文件,该文件定义了相应的$ application_folder变量?

另外 - 我确定你已经阅读了文档 - 但是CodeIgniter's documentation声明/ applications目录(或者你自己的目录)应该存在于/ system目录下,如下所示:

system/application/foo/
system/application/foo/config/
system/application/foo/controllers/
system/application/foo/errors/
system/application/foo/libraries/
system/application/foo/models/
system/application/foo/views/
system/application/bar/
system/application/bar/config/
system/application/bar/controllers/
system/application/bar/errors/
system/application/bar/libraries/
system/application/bar/models/
system/application/bar/views/

答案 1 :(得分:0)

好的 - 我的工作符合要求。我将尝试编写更广泛的“操作方法”,并在评论部分提供一个链接。

我不需要修改.htaccess而不是CI要求 - 我很高兴。我的输入目录如下所示:

/dd/index.php

这两个关键部分在这里:

list($blank, $webpath, $app) = explode('/', $_SERVER['REQUEST_URI']);
        $application_folder = $_SERVER['DOCUMENT_ROOT]."/applications/$app";

这允许单个index.php处理所有应用程序。

我缺少的部分是appName现在也必须是主控制器或控制器内的目录。 (我遇到的真正问题是我被黑客攻击太多,以至于我有配置和路线阻止我意识到我实际看到的内容:有时候开始清理是必要的。)