将模型指定为类属性以供以后使用是否可以?

时间:2011-03-06 14:26:46

标签: model kohana

让我们假设我有控制器,其中有很多方法使用相同的模型。可以这样做...... http://codepad.org/bSSMFpzp

在我这样做之前,我在每种方法中都创建了新变量......我只是尝试遵循DRY原则。 ))

2 个答案:

答案 0 :(得分:2)

我不认为这是最有用的调用,可以链接factory()调用,因此无论如何它都可以非常简单。此外,您不需要在示例代码中将变量作为对象属性,您可以使用$ alln而不是$ this-> alln。我认为这使代码更具可读性。

话虽如此,如果您有理由在其他操作中将其作为对象属性,是的,可以将对象分配给您可以在多个操作中使用的控制器。您必须确保不会替换可能替换的父类中已有的任何内容。

因此,如果您只是使用Kohana提供的Controller,那么请不要使用变量请求或响应。​​

答案 1 :(得分:1)

我尽量避免这种情况,以使我的行为更加独立,更容易阅读。

$this->foo->thing();

比阅读更容易:

Model::factory('foo')->thing();