CakePHP中的最佳实践,用于另一个控制器中的调用功能

时间:2014-07-15 01:11:46

标签: php cakephp cakephp-2.0

我有一个控制器附件负责处理所有上传文件。该控制器使用组件来执行此控制。

现在我有以下问题,我需要调用另一个控制器的附件控制器中实现的功能,这种情况下的最佳做法是什么?而:

  • 不建议将控制器中的功能调用到另一个控制器。
  • 如果我在我的模型中实现该功能,则必须使用一个也不建议的组件。

1 个答案:

答案 0 :(得分:2)

你不是。这完全错了,违反了MVC模式。

文件代表系统中的单个实体,应该作为那些(IMO)和模型层处理,而不是在控制器中处理。您可以在单一模型中实现验证和保存逻辑,并通过其他地方的关联访问该模型(如果有的话)。

例如User hasOne Avatar,Gallery hasMany Image。 “头像和图库”关联是您的附件或文件表模型。

我已经编写了一个插件,可以完成上述操作以及更多操作 https://github.com/burzum/cakephp-file-storage

使用它或将控制器逻辑移动到模型中。控制器应该真的很瘦,只有控制逻辑,它们永远不应该关心数据处理或操作。