如何将大型控制器拆分为Codeigniter中的不同文件?

时间:2011-04-26 21:42:42

标签: codeigniter

我写的Codeigniter控制器变得越来越大。如何将代码拆分为不同的文件?

2 个答案:

答案 0 :(得分:7)

你绝对应该做的事情:

  • 任何与控制器严格相关的内容,请不要管它。

  • 确保将至少99%的视图逻辑(html)移动到正确的视图文件中。

  • 将所有数据处理移至Model。这包括数据库交互,文件操作和表单处理。

你应该做的事情:

  • 您经常重复的任何内容,如果可能,请为其创建一个函数。

  • 收集所有与相关的功能,并在application/libraries/中创建Libraries

  • 无论遗留什么,如独立的常用功能,请在application/helpers中创建helper文件。如果你知道你总是需要它们,也许可以称之为global_helper.php或类似的东西。如果太拥挤,你可以将它们分解成不同的文件。

  • 使用base controller。创建文件core/MY_Controller.php。将此用于您知道您需要全局控制器的任何内容。您可以在此文件中为不同的控制器“类型”(如Front_Controller,Back_Controller,Login_Controller)创建任意数量的扩展,只需确保在控制器文件中扩展类,如Blog_Controller extends MY_Controller

确保您已完整阅读user guide,以便利用框架内置的功能,您可能会编写不必要的代码,因为您不知道可用的功能。

答案 1 :(得分:0)

听起来你的控制器中有太多与功能有关的功能。试着弄清楚你可以拆分成单独的控制器。否则,您的控制器可能会变为a god object