关于 php:如何避免 CodeIgniter 中的控制器代码臃肿?

How to avoid bloating the controller code in CodeIgniter?

控制器在 MVC 模式中用于处理用户输入和输出。因此,输入验证和响应准备应该在控制器中完成。

例如,我有一个控制器方法 "save",它:

  • 寻找输入数据
  • 对数据运行验证器
  • 如果输入有效,则加载适当的模型,将其字段设置为输入值,并调用其 save() 方法
  • 如果输入无效,准备数据以重新加载编辑表单,显示表单

所有这些序列都会产生相当混乱的线性代码。我想以某种方式将它分开。我是否将验证部分移至模型?听起来不对?我是否要创建一个特殊的"库"类来处理输入?

在 Asp.Net MVC 中这会更好,因为他们已经实现了"对象绑定器"模式。因此,验证和模型字段绑定消失了,控制器变得更轻了。 CodeIgniter 有类似的东西吗?


控制器进行验证并没有被广泛接受,我在模型中按照"保持模型胖,控制器瘦,视图哑"。

这取决于业务逻辑什么是有效的电话号码等等,所以只有在模型中才有意义。


我会完全按照您所逃避的方式去做,并在您的模型中加入尽可能多的逻辑。 imo 确实应该使用控制器来启动服务和为视图准备数据。

您应该尽可能多地重复使用代码,即验证器、过滤器等。