【问题标题】:MVC/Codeigniter file structureMVC/Codeigniter 文件结构
【发布时间】:2012-03-06 02:49:28
【问题描述】:

我一直在对 MVC 和文件结构进行大量研究。主要是我一直在研究如何开始一个新的布局。我下载了一些开源应用程序来了解文件结构和文件是如何开发的。

在第一个应用程序中,它被设置为使用标准方式(至少在我看来是这样)将所有控制器、模型和视图分别放在各自的文件夹中。这是所有书籍都说要这样做的方式。

在第二个应用程序中,所有文件夹都位于 modules_coremodules 文件夹中,其中每个控制器(至少我认为是控制器)都位于其中包含三个文件夹的文件夹中:控制器、模型、查看。

这两个版本中的哪一个被接受为标准和常见做法?这两个应用程序是否因 Codeigniter 的版本而不同?

【问题讨论】:

  • 我很抱歉在那里问了这两个问题...我已将它们删除以帮助更好地适应 Stack Overflow。

标签: model-view-controller codeigniter


【解决方案1】:

Code Igniter 的标准是使用这三个文件夹:

  • 控制器
  • 型号
  • 观看次数

您还可以创建子文件夹以更好地分隔文件。

搜索了一下,我发现 MyClientBase 使用了一个名为 codeigniter-modular-extensions-hmvc 的东西,就像 CI 的扩展。

Modular Extensions 使 CodeIgniter PHP 框架模块化。 模块是一组独立的组件,通常是模型, 控制器和视图,排列在应用程序模块子目录中, 可以放入其他 CodeIgniter 应用程序中。

HMVC 代表分层模型视图控制器。

我没有使用 hmvc 的经验,所以我不能告诉你什么更好。对于标准的 CI 结构,尽量在子文件夹(控制器、视图和模型)相关文件中分离好,当你需要在多个地方使用函数时,尽量使用helpers,以便更好地复用你的代码。

【讨论】:

  • Modular Extensions 基本上是增加了代码组织和模块化(理论上,如果可以避免跨模块依赖)。就个人而言,自从我开始使用 Codeigniter 以来,我从来没有在没有它的情况下开发过它。强烈推荐用于比几个控制器更大的任何东西。
  • MadM +1 我完全同意,HMVC 会增加你的制作时间。它要么是那个,要么是辅助函数。 :/ //加载部分视图比grab_facebook_id_and_do_stuff()更性感;
  • Madmartign:请写出问题的实际答案。我很乐意给你一个好的答案的代表点
  • @bretterer:您需要使用@ ping cmets 中的用户,我刚刚看到您和Philip 的回复。我在寻找类似问题的副本时发现了这一点。我认为在这个帖子中讨论模块的优点有点离题,但无论如何谢谢。
【解决方案2】:

我认为 MyClientBase(似乎与“标准”示例相去甚远)似乎更多地使用 HMVC,而不是 MVC。

【讨论】:

  • 好的,那么使用 HMVC 而不是 MVC 或 MVC 而不是 HMVC 有什么好处。有什么不同?等等……
猜你喜欢
  • 2013-08-18
  • 1970-01-01
  • 2011-07-23
  • 2011-11-09
  • 2020-08-22
  • 2018-04-19
  • 2011-09-21
  • 1970-01-01
  • 2012-04-09
相关资源
最近更新 更多