【问题标题】:How do you setup Codeigniter to handle multiple projects with shared ci base?您如何设置 Codeigniter 以处理具有共享 ci 库的多个项目?
【发布时间】:2009-10-08 20:36:45
【问题描述】:

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

但是,我无法按照承诺看到这项工作。

这是我所做的和我想做的 - 也许你可以帮忙。为了论证,我的文档根是 /www/(不是,但为了简单起见,我们使用它)

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

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

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

我已将“入口点”放在 /www/dd 中

现在假设我有两个项目:“dataentry”和“cpanel”

想法是我可以去

h**p://mydomain/dd/dataentry // 用于数据输入应用程序和

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

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

/www/applications/controllers/dataentry

/www/applications/controllers/cpanel

/www/applications/models/dataentry

/www/applications/models/cpanel

/www/applications/views/dataentry

/www/applications/views/cpanel

我可以让它正常工作。但是,我想做的是将模型和视图与控制器保持在同一级别,以便我拥有以下内容:

/www/applications/dataentry/controllers

/www/applications/dataentry/models

/www/applications/dataentry/views

/www/applications/cpanel/controllers

/www/applications/cpanel/models

/www/applications/cpanel/views

这似乎不起作用。

有什么建议吗?

-CF

【问题讨论】:

  • 10 年很长。我们试图做的是最小化每个存储库中的 CI,并且必须更新每个项目。在当今世界,这在很大程度上由 Composer 处理,CI 被 Laravel 取代,SVN 被 GIT 取代。而且磁盘很便宜。

标签: php codeigniter subproject


【解决方案1】:

是否每个应用程序(“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/

【讨论】:

  • 应用程序目录的默认位置在系统目录下 - 但是这是可变的并且很容易更改,并且是主 index.php 文件中“用户可配置设置”的一部分。您的第一点 - 单个 index.php 文件(或应用程序名称文件)确实是问题的核心。我希望避免使用它们并保留一个 index.php 文件。我现在正在研究 .htaccess 文件的创造性用途……感谢您的帮助! -CF
【解决方案2】:

好的 - 我已经按要求完成了这项工作。我将尝试编写更广泛的“操作方法”,并将在 cmets 部分提供链接。

我不必再修改 .htaccess 而不是 CI 要求的 - 我很高兴。我的入口目录是这样的:

/dd/index.php

这里有两个关键部分:

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

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

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

【讨论】:

    猜你喜欢
    • 2021-12-20
    • 1970-01-01
    • 2012-01-10
    • 1970-01-01
    • 2019-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多