如何在Controller和Model codeigniter MVC之间命名该层

时间:2011-01-25 02:27:50

标签: model-view-controller codeigniter

我想限制模型只调用db 而控制器将调用模型,库或帮助程序。

我不想在控制器或模型中放置逻辑来为视图准备数据。 现在,为视图准备所有数组的逻辑是在控制器中完成的。我正在创建一个库来分离这个部分,因为有时我觉得它正在重载控制器

因此,我想创建一个库类,并让控制器在将视图数据投射到视图之前构建视图数据。这并不完全是模板化的。

事情是我不知道如何命名..任何好的建议? 我在想view_builder,ui_builder,ui_components?

干杯

2 个答案:

答案 0 :(得分:3)

以下是我对应用进行分层的方式:

  1. 查看
  2. 控制器
  3. 服务
  4. 持久性
  5. 视图可以是桌面浏览器,也可以是浏览器或基于移动设备。

    Controller紧密绑定查看。它负责验证和绑定模型对象的输入,调用服务以完成用例,并将响应路由到下一个视图。

    服务满足用例。他们了解工作单元,自己的事务以及管理与数据库等资源的连接。它们使用模型对象,其他服务和持久性对象。它们是基于接口的对象,但可以作为Web服务进行远程处理或公开 - RPC-XML,SOAP,REST或其他。

    持久性是另一个基于接口的对象。实现可以是关系型或NoSQL;重要的是界面表示模型对象的CRUD操作。如果您使用泛型,则可以编写一个适用于所有人的接口。

    我不会让模型对象自行存在。我知道“贫血领域模式”的贬义,但我认为更激动人心的行为应该以业务目的为中心,而不是CRUD操作。

答案 1 :(得分:0)

良好的设置。我有时也会使用CI库来计算返回数据数组中的扭结,然后再将其传递给视图。我有时也会使用该模型。

考虑到名字对你有好处 - 我认为你提到的所有人都很好;您还可以考虑将您的库命名为data_structure或array_to_object - 或者更类似于您自己的问题,例如friend_map或tag_cloud。

我的建议:选择一个名字,如果有更具描述性的东西或者你的图书馆的功能演变成其他东西,不要害怕改变它。 Find + replace是你的朋友。