Spec-Zone.ru › CakePHP 2.10

Класс 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()
Авторские права: Авторские права (c) Cake Software Foundation, Inc. (https://cakefoundation.org)
Лицензия: MIT License
Расположение: Cake/Model/ModelBehavior.php

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

  • $mapMethods public
    array

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

  • $settings public
    array

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

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

  • _addToWhitelist() protected

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

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

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

  • beforeDelete() public

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

  • beforeFind() public

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

  • beforeSave() public

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

  • beforeValidate() public

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

  • cleanup() public

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

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

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

_addToWhitelist()source protected

_addToWhitelist( Model $model , string $field )

Если свойство whitelist модели $model не пусто, $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() )

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

Параметры

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

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

логический

См. также

Model::save()

afterValidate()source public

afterValidate( Model $model )

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

Параметры

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

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

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

beforeDelete()source public

beforeDelete( Model $model , boolean $cascade true )

Вызывается перед любой операцией удаления прикреплённой модели, но после вызова 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 этого объекта со свойством в определении $class. Значение этого класса для свойства будет объединено поверх значения $class'.

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

Параметры

массив $properties
Имя свойств для объединения.
строка $class
Класс для объединения свойства с.
булево $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

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


toString()source public

toString( )

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

Возвращает

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

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

$mapMethodssource

public массив

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

array()
END_OF_DOCUMENT_MARKER

$settingssource

public массив

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

См. также

Model::$alias
array()

© 2005–2017 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.10/class-ModelBehavior.html

Spec-Zone.ru

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