Начну сразу с примера.
Создаем класс MyForm который extended CFormModel. В нем public свойство $a; Также в нем метод init в котором $this->a = 5;
Создаем пустой класс поведения Behavior extended CBehavior. Подключаем поведение к классу MyForm. Задача убрать метод init из класса MyForm и перенести его в поведение.
Пытаюсь делать так. В классе поведения пишу конструктор:
Код: Выделить всё
public function __construct() {
$this->owner->a = 5;
}
Пытаюсь прописать в классе поведения:
Код: Выделить всё
public function init() {
$this->owner->a = 5;
}
Вопрос звучит так. Где прописать код, который должен выполниться при инициализации поведения, чтобы в этом коде был доступен владелец поведения $this->owner ?
Пока что я выкрутился таким образом, что вручную в контроллере вызываю метод init поведения, после того как создал экземпляр класса MyForm:
Код: Выделить всё
$model = new MyForm();
$model->Behavior->init();