我尝试覆盖属性getter方法(由sfDoctrineRecord :: __ call()方法处理),如下所示:
//myClass.class.php
public function getProperty()
{
$property = parent::getProperty();
//the following line is never reached
return $property;
}
但这导致无限递归。它有可能吗?如何?
答案 0 :(得分:8)
试试这样:
public function getProperty()
{
$property = $this->_get('property');
//the following line is never reached
return $property;
}
另外,请阅读有关自定义变更器和访问器的信息。
答案 1 :(得分:0)
在DoctrineRecord.__call方法中,您会看到它使用call_user_func_array
,它会尝试调用该类的getProperty
方法。
由于你已经覆盖了getProperty
,它正在调用子类定义,所以它正在调用它自己。