CodeIgniter最佳实践项目列表

时间:2012-10-17 00:59:10

标签: php codeigniter codeigniter-2 categories codeigniter-routing

我正在CodeIgniter中创建一个ebay风格(但更简单)的商店,我想知道处理商品代码/控制器的最佳方式。

目前,我有一个类别控制器,它是主控制器(在路线中)。 / category / id应显示特定类别的项目列表,/ category或/显示所有项目。

控制器中的类别索引($ id = 0){}加载生成类别列表的类别帮助器,然后在视图中回显它。

现在我已经到了添加项目方面的阶段......用户需要能够添加项目,查看特定项目,并且类别代码需要能够显示所有项目或特定类别的项目

我在考虑使用带有add_item,view_item的项目控制器,但是现在我想知道如何从类别控制器中获取类别列表。

我是否应该有一个加载项目模型的项目助手,根据类别获取项目列表,将列表分配给变量并回显列表?当用户想要查看特定项目时,它会加载项目控制器view_item,以及添加add_item等?

我还希望在他们查看项目时显示类别,所以如果我这样做,我还需要在项目控制器中加载类别助手...这是由于代码重复这种不好的做法?

1 个答案:

答案 0 :(得分:1)

简而言之,这就是我要做的事。

  • /,显示所有项目。
  • / category / xyz,显示所有类别的项目XYZ。
  • / item / view / xyz,显示项目XYZ。
  • / item / add,添加项目。
  • ...

在您的控制器中重复使用模型是正常的。否则会是可怕的;这意味着很多代码重复。尽可能重复使用帮助程序也是正常的。这是助手的目标!实现在很多地方重用的功能。当你开始复制+粘贴相同的行时,那就是你没有重复使用的时候。创建一个函数并重用它。

请记住,

  • 模型处理您的数据。 (类别,项目,投标,......)
  • Controller处理您的HTTP请求和响应。 (加载正确的模型,输出正确的视图,......)
  • Helper处理频繁的操作。 (关于您的型号,您的观点,您的要求,......)

希望这会有所帮助。