Переопределить метод магического доступа к доктрине - PullRequest
1 голос
/ 15 декабря 2010

Я пытаюсь переопределить метод получения свойства (который обрабатывается методом sfDoctrineRecord :: __ call ()) следующим образом:

//myClass.class.php
public function getProperty()
{
  $property = parent::getProperty();
  //the following line is never reached
  return $property;
}

Но это приводит к бесконечной рекурсии. Возможно ли это и как?

Ответы [ 2 ]

8 голосов
/ 15 декабря 2010

Попробуйте так:

public function getProperty()
{
  $property = $this->_get('property');
  //the following line is never reached
  return $property;
}

Также читайте о пользовательских мутаторах и аксессорах.

0 голосов
/ 15 декабря 2010

Внутри DoctrineRecord .__ вызовите метод , вы увидите, что он использует call_user_func_array, который попытается вызвать метод getProperty класса.

Поскольку вы переопределили getProperty, он вызывает определение дочернего класса, поэтому он вызывает сам себя.

...