Spec-Zone.ru › CakePHP 2.8

Класс 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.

Объект
Extended by ModelBehavior

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

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

Краткое описание свойств

  • $mapMethods public
    array

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

  • $settings public
    array

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

Краткое описание методов

  • _addToWhitelist() protected

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

  • afterDelete() public
    Обратный вызов после удаления вызывается после любого удаления прикрепленной модели.
  • afterFind() public
    Обратный вызов после поиска. Может быть использован для изменения любых результатов, возвращаемых поиском.
  • 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()источник protected

_addToWhitelist( Model $model , string $field )

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

Параметры

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

afterDelete()источник public

afterDelete( Model $model )

Обратный вызов после удаления вызывается после любого удаления прикреплённой модели.

Параметры

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

afterFind()источник public

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

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

Параметры

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

Возвращает

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

afterSave()источник public

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

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

Параметры

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

Возвращает

булево значение

См. также

Model::save()

afterValidate()источник public

afterValidate( Model $model )

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

Параметры

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

Возвращает

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

beforeDelete()источник 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 из callback beforeSave прервёт операцию сохранения.

Параметры

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

Возвращает

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

См. также

Model::save()

beforeValidate()source public

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

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

Параметры

Model $model
Модель, использующая этот компонент
массив $options optional 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 )

Обработчик ошибок DataSource

Параметры

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

setup()source public

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

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

Параметры

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

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

__construct()source public

__construct( )

Конструктор, пустая операция

_mergeVars()source protected

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

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

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

Параметры

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

_set()source protected

_set( array $properties array() )

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

Параметры

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

_stop()source protected

_stop( integer|string $status 0 )

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

Параметры

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

dispatchMethod()source public

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

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

Параметры

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

Возвращает

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

log()source public

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

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

Параметры

строка $msg
Сообщение лога
целое число $type optional LOG_ERR
Константа типа ошибки. Определена в app/Config/core.php.
null|строка|массив $scope optional 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 optional array()

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

Возвращает

mixed

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


toString()source public

toString( )

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

Возвращает

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

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

$mapMethodssource

public массив

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

array()
END_OF_DOCUMENT_MARKER

$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.
http://api.cakephp.org/2.8/class-ModelBehavior.html

Spec-Zone.ru

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