我写的Codeigniter控制器变得越来越大。如何将代码拆分为不同的文件?
答案 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。