Doctrine2 __constructor не вызывается при использовании $ em-> find (); ? Как правильно загрузить объект?

Я изучаю doctrine2, и у меня возникла проблема, как вызвать конструктор автоматически. Например, в моем объекте у меня есть

/**
 * @Entity
 */
class User{
   ....
   public function __construct() {
       exit('in');
   }
}

, и когда я получаю объект таким образом:

$userObj = $em->find('User', 1);

Я получаю этот объект из базы данных, но конструктор никогда не вызывается. Я хочу поместить некоторые общие вещи в конструктор, например правила проверки, или даже поместить образец кода из документации доктрины, например

        $this->comments = new ArrayCollection();

. Это, конечно же, работает, когда я создаю новый объект в коде для создания пользователя, такого как

$user = new User(); //now constructor works just fine

Теперь, что такое "правильный" способ получить сущность? Я сомневаюсь, что мне нужно вызывать конструктор вручную каждый раз, когда я использую $ em-> find () с помощью $ user0bj -> __ construct (); ? Тогда это было бы отстой ... Или я должен использовать что-то другое, кроме -> find (), чтобы правильно получить единый объект? Я знаю, что могу использовать @PrePersist, и я использую его, чтобы выполнять проверки и т. Д. Я предполагаю, что мне здесь что-то не хватает, или я некачественно пытаюсь использовать конструктор. Спасибо за любые объяснения и руководства!

10
задан Dalibor 23 January 2011 в 13:09
поделиться