Yii Behaviors

При наследовании (extends) дочерний класс получает открытые и защищенные методы родителя. Это здорово, но есть несколько недостатков. Родительский класс разрастается, некоторым детям совершенно не нужны методы и свойства родителя.

Поведения позволяют избавится от этих недостатков и добавлять к различным классам новые методы.

Пример

model

public function behaviors() { return array( 'AutoTimestampBehavior' => array( 'class' => 'zii.behaviors.CTimestampBehavior', 'createAttribute' => null, 'updateAttribute' => 'date_updated', 'setUpdateOnCreate' => true, ), ); }

CTimestampBehavior

Ссылки

Хорошие поведения - Behaviors в Yii

Простенький tree behavior для ActiveRecord

Расширение ActiveRecord работа с деревом (Adjacency Lists)

adjacency-list-behavior

Nested Sets + CTreeView, CDropdownList, CListBox

nestedsetbehavior