CakePHP: Manual/Developing/Behaviors/CreatingBehaviors

Создание пользовательских поведений

Поведения, подключенные к моделям, имеют свои колбэки, вызываемые автоматически. Эти колбэки подобны колбэкам моделей: beforeFind, afterFind, beforeSave, afterSave, beforeDelete, afterDelete и onError.

Полезно использовать встроенные поведения, как образец для создания вашего собственного. Найти их можно в cake/libs/models/behaviors/.

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

Кроме того, вы можете добавить настройки для поведения. Информация об определении настроек может быть найдена в главе о встроенных поведениях и их настройке.

Пример, который иллюстрирует, как настройки поведения могут быть переданы из модели в поведение:

<?

class Post extends AppModel {

    var $name 'Post'

    var $actsAs = array(

        'YourBehavior' => array(

            'option1_key' =>; 'option1_value'));

}

?>

Начиная с версии 1.2.8004, CakePHP добавляет эти настройки только один раз для модели/алиаса. Для дальнейшего обновления поведения вы должны соблюдать алиасы (или модели).

Дружественная к обновлению, функция setup будет выглядеть подобным образом:

<?

function setup(&$model$settings) {

    if (!isset($this->settings[$model->alias])) {

        $this->settings[$model->alias] = array(

            // 'option1_key' => 'option1_default_value',

            // 'option2_key' => 'option2_default_value',

            // 'option3_key' => 'option3_default_value',

        );

    }

    $this->settings[$Model->alias] = array_merge(

        $this->settings[$Model->alias], (array)$settings);

}

?>

<< Использование поведений | Отображения >>