Spec-Zone.ru › CakePHP 2.9

Класс ModelBehavior

Базовый класс поведения модели.

Определяет интерфейс поведения и содержит общую функциональность взаимодействия с моделью. Поведения позволяют имитировать миксины и создавать многократно используемые блоки логики приложения, которые можно использовать в нескольких моделях. Поведения также предоставляют способ подключиться к обратным вызовам модели и расширить их поведение.

Методы миксинов

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

function doSomething(Model $model, $arg1, $arg2) {
    //do something
}

Вызов будет выглядеть так: $this->Model->doSomething($arg1, $arg2);.

Картированные методы

Поведения также могут определять сопоставленные методы. Сопоставленные методы используют сопоставление шаблонов для вызова методов. Это позволяет создавать методы, подобные методам Model::findAllByXXX в ваших поведениях. Сопоставленные методы должны быть объявлены в вашем поведении в массиве $mapMethods. Подпись метода для сопоставленного метода немного отличается от обычного метода миксина поведения.

public $mapMethods = array('/do(\w+)/' => 'doSomething');

function doSomething(Model $model, $method, $arg1, $arg2) {
    //do something
}

Вышеупомянутое сопоставит каждый вызов метода doXXX() с поведением. Как вы можете видеть, модель по-прежнему является первым параметром, но имя вызываемого метода будет вторым параметром. Это позволяет изменять имя метода для получения дополнительной информации, подобно методам Model::findAllByXX.

CakeObject
Extended by ModelBehavior

Прямые подклассы

  • AclBehavior
  • ContainableBehavior
  • TranslateBehavior
  • TreeBehavior
Пакет: Cake\Model
См.: Model::$actsAs
См.: BehaviorCollection::load()
Авторские права: Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
Лицензия: MIT License
Расположение: Cake/Model/ModelBehavior.php

Резюме свойств

  • $mapMethods public
    array

    Разрешает сопоставление регулярных выражений, совместимых с preg, с публичными или закрытыми методами в этом классе, где ключ массива — это регулярное выражение, разделенное символом «/», а значение — это метод класса. Аналогично функциональности магических методов findBy* / findAllBy*.

  • $settings public
    array

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

Резюме методов

  • _addToWhitelist() protected

    Если свойство $whitelist модели не пустое, $field будет добавлено в него. Примечание: этот метод следует использовать только в методах beforeValidate или beforeSave, чтобы убедиться, что он изменяет белый список только для текущей операции сохранения. Также убедитесь, что вы явно устанавливаете значение поля, которое вы разрешаете.

  • afterDelete() public
    Вызывается после любой операции удаления связанной модели.
  • afterFind() public
    Обратный вызов после поиска. Может использоваться для изменения любых результатов, возвращаемых методом find.
  • afterSave() public
    afterSave вызывается после сохранения модели.
  • afterValidate() public

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

  • beforeDelete() public

    Before delete вызывается перед любой операцией удаления прикрепленной модели, но после вызова beforeDelete модели. Возвращение false из beforeDelete прервет удаление.

  • beforeFind() public

    beforeFind можно использовать для отмены операций поиска или изменения запроса, который будет выполнен. Возвращая null/false, вы можете прервать поиск. Возвращая массив, вы можете изменить/заменить запрос, который будет выполнен.

  • beforeSave() public

    beforeSave вызывается перед сохранением модели. Возвращение false из обратного вызова beforeSave прервет операцию сохранения.

  • beforeValidate() public

    beforeValidate вызывается перед проверкой модели. Вы можете использовать этот обратный вызов, чтобы добавить правила проверки поведения в массив проверки модели. Возвращение false позволит вам заставить проверку завершиться неудачей.

  • cleanup() public

    Очистка любых инициализаций, выполненных этим поведением для модели. Вызывается при динамической отвязке поведения от модели с помощью Model::detach().

  • onError() public
    Обратный вызов ошибки источника данных
  • setup() public
    Настройка этого поведения с заданными параметрами конфигурации.

Подробное описание методов

_addToWhitelist()source protected

_addToWhitelist( Model $model , string $field )

Если свойство $whitelist модели не пустое, $field будет добавлено в него. Примечание: этот метод следует использовать только в методах beforeValidate или beforeSave, чтобы убедиться, что он изменяет белый список только для текущей операции сохранения. Также убедитесь, что вы явно устанавливаете значение поля, которое вы разрешаете.

Параметры

Model $model
Модель, использующая это поведение
строка $field
Поле, которое должно быть добавлено в белый список $model

afterDelete()source public

afterDelete( Model $model )

Вызывается после любой операции удаления связанной модели.

Параметры

Model $model
Модель, использующая это поведение

afterFind()source public

afterFind( Model $model , mixed $results , boolean $primary false )

Обратный вызов после поиска. Может использоваться для изменения любых результатов, возвращаемых методом find.

Параметры

Model $model
Модель, использующая это поведение
смешанный $results
Результаты операции поиска
логическое $primary необязательно false
Является ли эта модель непосредственно запрошенной (или запрошенной как ассоциация)

Возвращает

смешанный
Значение массива заменит значение $results — любое другое значение будет проигнорировано.

afterSave()source public

afterSave( Model $model , boolean $created , array $options array() )

afterSave вызывается после сохранения модели.

Параметры

Model $model
Модель, использующая это поведение
логическое $created
True, если это сохранение создало новую запись
массив $options необязательно array()
Параметры, переданные из Model::save().

Возвращает

логическое

См.

Model::save()

afterValidate()source public

afterValidate( Model $model )

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

Параметры

Model $model
Модель, использующая это поведение

Возвращает

смешанный
False останавливает передачу этого события другим поведениям

beforeDelete()source public

beforeDelete( Model $model , boolean $cascade true )

Before delete вызывается перед любой операцией удаления прикрепленной модели, но после вызова beforeDelete модели. Возвращение false из beforeDelete прервет удаление.

Параметры

Model $model
Модель, использующая это поведение
логическое $cascade необязательно true
Если true, записи, зависящие от этой записи, также будут удалены

Возвращает

смешанный
False, если операция должна быть прервана. Любой другой результат продолжит выполнение.
END_OF_DOCUMENT_MARKER ```

beforeFind()source public

beforeFind( Model $model , array $query )

beforeFind можно использовать для отмены операций поиска или изменения запроса, который будет выполнен. Возвращая null/false, вы можете прервать поиск. Возвращая массив, вы можете изменить/заменить запрос, который будет выполнен.

Параметры

Model $model
Модель, использующая этот бихевиор
массив $query
Данные, используемые для выполнения этого запроса, например, условия, сортировка и т. д.

Возвращаемое значение

boolean|array

False или null прервут операцию. Вы можете вернуть массив для замены $query, который будет в конечном итоге выполнен.


beforeSave()source public

beforeSave( Model $model , array $options array() )

beforeSave вызывается перед сохранением модели. Возвращение false из обратного вызова beforeSave прервёт операцию сохранения.

Параметры

Model $model
Модель, использующая этот бихевиор
массив $options необязательно array()
Параметры, переданные из Model::save().

Возвращаемое значение

mixed
False, если операция должна быть прервана. Любой другой результат продолжит выполнение.

См. также

Model::save()

beforeValidate()source public

beforeValidate( Model $model , array $options array() )

beforeValidate вызывается перед валидацией модели. Вы можете использовать этот обратный вызов для добавления правил валидации поведения в массив validate модели. Возвращение false позволит вам заставить валидацию завершиться неудачей.

Параметры

Model $model
Модель, использующая этот бихевиор
массив $options необязательно array()
Параметры, переданные из Model::save().

Возвращаемое значение

mixed
False или null прервут операцию. Любой другой результат продолжит выполнение.

См. также

Model::save()

cleanup()source public

cleanup( Model $model )

Очистка любых инициализаций, выполненных этим бихевиором в модели. Вызывается при динамическом отсоединении бихевиора от модели с помощью Model::detach().

Параметры

Model $model
Модель, использующая этот бихевиор

См. также

BehaviorCollection::detach()

onError()source public

onError( Model $model , string $error )

Обработчик ошибок источника данных

Параметры

Model $model
Модель, использующая этот бихевиор
строка $error
Ошибка, сгенерированная в DataSource

setup()source public

setup( Model $model , array $config array() )

Настройка этого бихевиора с указанными настройками конфигурации.

Параметры

Model $model
Модель, использующая этот бихевиор
массив $config необязательно array()
Настройки конфигурации для $model

Методы, унаследованные от CakeObject

__construct()source public

__construct( )

Конструктор, недействующая операция

_mergeVars()source protected

_mergeVars( array $properties , string $class , boolean $normalize true )

Объединяет $property этого объекта с property в определении $class. Значение этого класса для свойства будет объединено поверх $class'

Это предоставляет часть магии DRY, предоставляемой CakePHP. Если вы хотите отключить её, переопределите этот метод как пустую функцию.

Параметры

массив $properties
Имя свойств для объединения.
строка $class
Класс для объединения свойства с.
boolean $normalize необязательно true
Установите в true, чтобы запустить свойства через Hash::normalize() перед объединением.

_set()source protected

_set( array $properties array() )

Позволяет устанавливать несколько свойств объекта в одной строке кода. Будут установлены только свойства, которые являются частью объявления класса.

Параметры

массив $properties необязательно array()
Ассоциативный массив, содержащий свойства и соответствующие значения.

_stop()source protected

_stop( integer|string $status 0 )

Остановка выполнения текущего скрипта. Оборачивает exit(), что упрощает тестирование.

Параметры

целое число|строка $status необязательно 0
см. http://php.net/exit для значений

dispatchMethod()source public

dispatchMethod( string $method , array $params array() )

Вызывает метод этого объекта с заданными параметрами. Предоставляет объектно-ориентированную оболочку для call_user_func_array

Параметры

строка $method
Имя вызываемого метода
массив $params необязательно array()
Список параметров для использования при вызове $method

Возвращаемое значение

mixed
Возвращает результат вызова метода

log()source public

log( string $msg , integer $type LOG_ERR , null|string|array $scope null )

Удобный метод для записи сообщения в CakeLog. Дополнительную информацию о записи в журналы см. в CakeLog::write().

Параметры

строка $msg
Сообщение журнала
целое число $type необязательно LOG_ERR
Константа типа ошибки. Определена в app/Config/core.php.
null|строка|массив $scope необязательно null

Область(и), в которой создаётся сообщение журнала. Дополнительную информацию о областях ведения журнала см. в CakeLog::config().

Возвращаемое значение

boolean
Успешность записи в журнал

requestAction()source public

requestAction( string|array $url , array $extra array() )

Вызывает метод контроллера из любого места. Может использоваться для подключения контроллеров или связывания плагинов с основным приложением. requestAction может использоваться для возврата отрисованных представлений или получения возвращаемого значения действий контроллера.

Под капотом этот метод использует Router::reverse() для преобразования параметра $url в строку URL. Вы должны использовать форматы URL, совместимые с Router::reverse().

Передача данных POST и GET

Данные POST и GET могут быть смоделированы в requestAction. Используйте $extra['url'] для данных GET. Параметр $extra['data'] позволяет моделировать данные POST.

Параметры

строка|массив $url

Строка или массив, основанные на URL. В отличие от других массивов URL в CakePHP, этот URL не будет автоматически обрабатывать переданные и именованные аргументы в параметре $url.

массив $extra необязательно array()

Если массив включает ключ "return", он устанавливает AutoRender в true. Также может использоваться для отправки данных GET/POST и именованных/переданных аргументов.

Возвращаемое значение

mixed

Boolean true или false при успехе/неудаче или содержимое отрисованного действия, если 'return' установлен в $extra.


toString()source public

toString( )

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

Возвращаемое значение

строка
Имя этого класса

Подробности свойств

$mapMethodssource

public массив

Позволяет сопоставление регулярных выражений, совместимых с preg, с общедоступными или закрытыми методами в этом классе, где ключ массива — регулярное выражение с разделителями «/», а значение — метод класса. Аналогично функциональности магических методов findBy* / findAllBy*.

array()

$settingssource

public массив

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

См. также

Model::$alias
array()

© 2005–2016 The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/2.9/class-ModelBehavior.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API