2012-02-10 64 views
0

因此,codeigniter有应用程序和系统。我想添加另一个名为“platform”的文件夹,它将具有与应用程序(控制器,视图和所有内容)相同的目录结构。代码点火器子应用程序

我想如何工作是这样的: - 当你加载模型,视图,库,控制器等应该首先检查应用程序(如果它不在那里,它应该检查平台,如果它不存在它应该显示错误) - 我想在“平台”中制作一些基本模型和控制器,并在“应用程序”中创建所有控制器和模型以继承它们。我想在“平台”中扩展基本的核心和库类“并且如果需要的话,它们将在”应用程序“中被扩展

我不知道代码点火器是否已经可以做到这一点,或者它是否需要做某件事情。

基本上它就像cakephp的插件(如果有人知道他们是如何/工作)。

问题:

我该如何做到上述?

+1

你的问题似乎并不有一个问题。 – Mischa 2012-02-10 16:14:50

+0

我编辑过:我的问题是:我该怎么做。 – 2012-02-10 16:19:02

+0

您可以让2个“应用程序”共享相同的系统文件夹,但它们彼此独立。要做你想做的事,你必须编辑'system/core'中的'Loader.php'。 – 2012-02-10 16:27:56

回答

2

有一个“third_party”文件夹,您可以在其中添加“子应用程序”,或称为Application "Package"

“应用程序包允许在单个目录中轻松分发完整的资源集,并配有自己的库,模型,帮助程序,配置文件和语言文件。建议将这些软件包放入应用程序/文件夹THIRD_PARTY ......”

来源: http://codeigniter.com/user_guide/libraries/loader.html

这是应用程序文件夹内完成(它几乎下降在文档的底部)。 有可能的方式来实现你想要什么,把你的文件夹中的应用程序之外,通过这样做:

$this->load->add_package_path(PATH_OUTSIDE_APPLICATIONS.'/my_package/'); 

代替:

$this->load->add_package_path(APPPATH.'third_party/my_package/'); 

它是否会工作,但我还没有测试。但你可以试试!

+0

我听不到这听起来有多棒。明天将试一试:D – 2012-02-10 21:33:03

0

您必须对文件进行一些修改,但可以使用不同的应用程序文件创建两个文件夹,然后使用$ application_folder变量将两个单独的索引文件指向每个文件夹。

我从来没有真正尝试过这个,但它应该工作。确保你也更新$ system_folder var。

这里更多:

http://codeigniter.com/user_guide/general/managing_apps.html