放置App :: uses的控制器内部的首选级别是什么?

时间:2013-08-31 16:28:35

标签: cakephp cakephp-2.0 lazy-loading

我知道App::uses会进行延迟加载,但是如果我们要在代码的一小部分中使用ie CakeTime(比如在一个被称为1/3次的if语句中)该方法被称为)那么放置App::uses('CakeTime', 'Utility')的最佳位置是什么?

选项包括:

  1. AppController的
  2. myController的
  3. :: myController的方法名
  4. if语句中的
  5. MyController :: methodName(实际上将使用它)。
  6. 我把它放在4中,因为我猜必须有一些明显的开销(即使非常小)但是我没有看到任何理由让它出现在控制器的每次调用中。我的同事说2,因为它“我们可能在将来的其他地方需要它,而且它很懒,所以这不是问题”。我对此的回答是,如果我们在其他地方需要它,那么我们应该重新定义然后根据情况把它放在哪里。

    您的意见是什么?为什么?

1 个答案:

答案 0 :(得分:2)

没有首选的地方,只有“正确”的地方。 始终在类实际使用它的文件中。

因此,如果您在MyController中使用CakeTime,那么您可以将它放在同一个文件的顶部。

除了技术方面,对于即将推出的3.0版本来说也是明智之举。 如果您想要迁移(从而使用命名空间声明),那么如果您将那些以前的App :: uses()语句放在正确的位置,您将会非常感激。