在不同的控制器cakephp性能中加载模型

时间:2013-08-18 05:54:57

标签: performance cakephp cakephp-2.3

假设我有这些模型 - 帖子,类别,用户。发布所属类别和用户。

在我的PostsController里面,我想从类别或用户表中获取数据,我可以使用以下其中一种

1) public $uses = array('Post', 'Category', 'User') and use Category model like
$this->Category->find('all'); everywhere in that controller

2)  $this->Post->Category ->find('all');

3)  $this->loadModel('Category '), than use 
    $this->Category->find('all') in that action

所以,我的问题是哪一个会有最好的表现,为什么?也许对于小型应用程序来说它不会有任何明显的效果,但是如果项目很大并且应该在同一个控制器中使用的数十个模型并且每个小的性能改进都很重要。

由于

1 个答案:

答案 0 :(得分:2)

如果您已在模型中拥有关联,请使用它(#2)。这是有道理的,因为这些模型很可能已经加载(如果你没有缓存)。

否则,请使用loadModel功能。这样,只有在需要时才会加载模型。无论哪种方式,除非你的构造函数中有一些重要的工作(你不应该),它真的无关紧要。