codeigniter PHP中的MVC设计

el_*_*_le 1 php architecture model-view-controller codeigniter

应该何时制作新型号或控制器?是否只有控制器与相应的视图1对1一起使用,并且控制器和模型是这样的?或者,控制器的功能是否与任何特定视图无关?例如,投票,如果所有投票代码都在投票控制器中,或者在具有使用投票的观点的控制器之间传播.似乎投票控制员可能是最好的.

ter*_*ško 5

首先,你无法在php中实际实现经典MVC.你能做的最好的是Model2 MVC.

  • 模型 - 负责所有业务逻辑.没有关于线索,其中的数据存储或实际上来自.存储和检索是DataMappers或DAO的责任.模型本身应该永远不会包含SQL.永远.
  • 控制器 - 将模型绑定到视图并更改两者的状态.它不会从模型中检索信息以将其发送到视图.
  • 查看 - 负责所有表示逻辑.从模型中检索信息并将其绑定到适当的模板.查看本身不是模板.

你可以1:1在控制器或视图之间保持关系many:many.这取决于你如何实现视图本身.

例如,您的视图可能需要一个处理渲染的单独对象.并且提供不同类型的对象(这是多态性很重要的地方),您可以使视图呈现xml,html或json.

或者您可以通过更改模板来执行相同操作.一ListView类可以使用户的文章列表,以及列表中,如果基本呈现逻辑不改变,你对每个只提供一个不同的模板.

在投票的情况下,似乎可以为所有与投票相关的操作设置单个控制器,并且您可以使用单个视图切换输出的模板.