0

我正在考虑在 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.

我如何实现类似的结果?

4

3 回答 3

1

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

我认为 pyro cms 实际上将 /system/cms 设置为应用程序文件夹,大概他们已经编写了代码来查看呈现的应用程序文件夹的内容并对其进行处理。

另一种方法是使用wiredesigns模块化HMVC:

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

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

您在配置中设置了模块文件夹的路径,因此如果您希望在系统文件夹中使用 cms 代码,您可以在此处设置模块文件夹的路径,并以标准方式使用 codeigniter 在顶部构建,可能在之前或之后添加一个钩子您的控制器已加载以调用 cms 核心。

于 2012-12-10T23:17:23.463 回答
1

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

  • 应用路径
  • 基本路径

@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

以上所有内容都可以在您只想扩展必要的核心文件时实现。

于 2012-12-11T15:05:56.907 回答
0

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

于 2012-12-11T15:10:08.953 回答