在\Phalcon\Mvc\Model中定义源表的最正确方法是什么?

在\Phalcon\Mvc\Model中定义源表的最正确方法是什么?,model,phalcon,Model,Phalcon,据我所知,可以通过以下变量定义表名: 1) 通过定义getSource()方法 2) 通过定义$\u源属性 protected $_source = 'table1'; 3) 在哪里需要定义源表?在initialize()方法或_construct()中,为什么 4) 可能还有其他可能的解决方案吗?最好的方法是在类中定义getSource方法 public function getSource() { return 'table1'; } 但是,您也可以在initialize()中使

据我所知,可以通过以下变量定义表名:

1) 通过定义getSource()方法

2) 通过定义$\u源属性

protected $_source = 'table1';
3) 在哪里需要定义源表?在initialize()方法或_construct()中,为什么


4) 可能还有其他可能的解决方案吗?

最好的方法是在类中定义
getSource
方法

public function getSource()
{
    return 'table1';
}
但是,您也可以在
initialize()
中使用
setSource()
,或者再次在
initialize()
函数中设置
$\u source

public function initialize()
{
    $this->setSource('table1');
}
initialize()
执行所有必要的工作,将模型绑定到数据库并执行其他操作,以便将功能公开给开发人员。
\uu构造()
在创建对象时被调用


我认为,只要设置正确,在哪里设置
$\u源代码
,没有太大区别。我个人的偏好是在
getSource()
中设置它。这样做可以使事情保持整洁,而且我不必跟踪
$\u源代码
变量。

这是一种更具编码风格的东西。最后,我将setSource($table)方法留在initialize()中,而不是定义额外的方法。从我的观点来看,设置$\源变量不是很好的解决方案,因为这个属性没有被记录:)在initialize()方法中描述表名更好,因为所有模型定义都在一个地方,它使代码更清晰:)
public function initialize()
{
    $this->setSource('table1');
}