Как я могу вызвать метод инициализации для всех моих моделей в doctrine2? - PullRequest
3 голосов
/ 06 октября 2011

Я использую Doctrine2, и у меня довольно много модельных объектов.

Все объекты наследуются от базового класса BaseModel, и мне нужно, чтобы каждый объект вызывал метод при его создании.Так как Doctrine не вызывает __construct, я не могу это использовать.

И из того, что я видел, если бы я хотел использовать методы жизненного цикла, мне пришлось бы изменить все мои объекты, их более 50их ...

Есть ли способ определить в одном месте общий метод жизненного цикла?

1 Ответ

2 голосов
/ 06 октября 2011

Установите ваш BaseModel как сопоставленный суперкласс с соответствующими обратными вызовами жизненного цикла , например

/** @MappedSuperclass @HasLifecycleCallbacks */
class BaseModel
{
    /** @PostLoad */
    public function doStuffOnPostLoad()
    {
        // do stuff
    }
}
...