如何将自定义代码添加到CodeIgniter的'system'文件夹?

时间:2012-12-10 20:59:57

标签: codeigniter

我正在研究在CodeIgniter之上构建我自己的CMS /扩展框架,我想知道如何构建它以使代码远离application文件夹。我注意到在典型的CI设置中,文件结构如下所示:

application/    //code for your application
system/         //CodeIgniter core
index.php

但是,在PyroCMS中,他们使用了以下结构:

application/    //code for your application 
system/
--cms/          //PyroCMS core
--codeigniter/  //CodeIgniter core.

我如何取得类似的结果?

3 个答案:

答案 0 :(得分:1)

简短的回答是一切都从index.php开始,这是包含core / CodeIgniter.php的地方,也是设置应用程序和系统路径的地方(从config中检索值)。

我认为pyro cms实际上将/ system / cms设置为应用程序文件夹,可能是他们编写的代码,用于查看所呈现的应用程序文件夹中的内容并对其进行处理。

另一种方法是使用有线设计模块HMVC:

https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc

这将允许您将代码分成模块。只需要一个名为cms的文件夹,其中包含所有cms模块,另一个文件夹用于构建自定义内容。

您可以在配置中设置模块文件夹的路径,这样如果您想在系统文件夹中输入cms代码,可以在那里设置模块文件夹的路径,并使用标准方式的codeigniter构建在顶部,也许添加一个钩子在加载控制器之前或之后调用cms核心。

答案 1 :(得分:1)

要模拟该结构,只需编辑index.php常量:

  • APPPATH
  • 基本路径

@WebweaverD为您提供了一个很好的解决方案来改进您的应用程序使用HMVC。我会再给你一个。

这样的事情怎么样:

-system/      //CI core
-index.php      //manage the front_end requests
-acp.php      //manage the back_end requests
-apps/      //applications dir
--back_end/      //only "admin" controllers, libraries, config. No views here
--frond_end/      //only "user" controllers, libraries, config. No views here
--acp/      //views for back_end
--themes/      //views for front_end

以上所有内容都可以实现,因为您只需要扩展必要的核心文件。

答案 2 :(得分:0)

我只是一个建议,但你可以轻松地派遣pyrocms并在其上构建自己的cms。 PyroCMS将在下一版本中弃用codeigniter,以便您可以保留其代码并将其修复到您需要的位置并根据需要进行修改