【问题标题】:Is this ideal CodeIgniter App Architecting?这是理想的 CodeIgniter 应用程序架构吗?
【发布时间】:2012-02-10 14:49:13
【问题描述】:

我非常擅长使用模型进行数据库调用并将数据交给...

我了解观点和理想的用法。我的一般想法是为每个部分(大部分)创建以下内容:

  - controller
  - model
  - view(s) // add, edit, profile, etc
  - library // specific logic and output

然后当我想访问与人相关的数据时;从我的BORROWER 控制器说,我将调用people library function 并将适当的people view 加载到BORROWER controller 和它的视图中。 AND,对于PEOPLE 逻辑自然也是如此。干燥。

这是理想的吗?

【问题讨论】:

  • 看起来是这样,但是有了库,模型中哪些逻辑没有意义,视图中哪些输出没有意义?
  • 同意。库更适合分类常见的控制器逻辑。将模型视为您不仅可以检索数据的地方,还可以将其格式化以在控制器/视图中使用。
  • @landons 你是对的。我已经将模型用于逻辑。但是 CodeIgniter 写道,模型代表你的数据结构。通常...在您的数据库中检索、插入和更新信息。 所以问题就来了。并查看 CodeIgniter 流程​​图;看来这就是它的意图。虽然,我得到 CodeIgniter 几乎可以工作,但是任何人都希望它。目前我只是从模型中获取和发送数据数组。我使用 Controller 和 Library 项目来处理数据和逻辑,然后将其发送到 View。
  • 是的,您可以随心所欲地使用它,但这与“理想”不同。理想情况下,库用于独立于使用它的对象类型的通用功能。这就是为什么文件上传、图像处理等被认为是“库”,因为它们不是特定于实现的(比如“人”,它是一个模型)。我会回答你的方法“有效”但并不“理想”。

标签: php codeigniter architecture


【解决方案1】:

您可以尝试将 HMVC 扩展用于 CI,您可以在其中开发 MVC 的模块化方法。这将允许您使用自己的控制器、模型和视图加载应用程序模块。模块可以调用任何其他模块,并且可以加载其他模块的模型。看看here

【讨论】:

  • 你用吗?听起来很酷...“Modular HMVC 意味着模块化 MVC 三元组。Modular Separation 和 Modular Extensions 允许相关的控制器、模型、库、视图等在模块目录中组合在一起,并像迷你应用程序一样使用。但是, Modular Extensions 更进一步,允许这些模块相互“对话”。您无需再次通过 http 接口即可获得控制器输出。"
  • 是的,自从我开始使用 HMVC 以来,一切都变得有意义了。我正在使用更大的应用程序。也节省了很多时间。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-09-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-01
  • 2019-01-31
相关资源
最近更新 更多