Spec-Zone.ru › CakePHP 3.2

Класс Behavior

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

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

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

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

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

Будет вызываться так $table->doSomething($arg1, $arg2);.

Методы обратного вызова

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

  • beforeFind(Event $event, Query $query, ArrayObject $options, boolean $primary) Вызывается перед каждой операцией поиска. Остановив событие и предоставив возвращаемое значение, вы можете полностью обойти операцию поиска. Любые изменения, внесенные в экземпляр $query, будут сохранены для остальной части поиска. Параметр $primary указывает, является ли это основным запросом или запросом связанной сущности.

  • buildValidator(Event $event, Validator $validator, string $name) Вызывается, когда объект валидатора, идентифицируемый по имени $name, создается. Вы можете использовать этот обратный вызов для добавления правил валидации или добавления поставщиков валидации.

  • buildRules(Event $event, RulesChecker $rules) Вызывается при создании объекта проверки правил для таблицы. Вы можете использовать этот обратный вызов, чтобы добавить больше правил в набор.

  • beforeRules(Event $event, EntityInterface $entity, ArrayObject $options, $operation) Вызывается перед валидацией сущности с помощью проверяющего правила. Остановив это событие, вы можете вернуть окончательное значение операции проверки правил.

  • afterRules(Event $event, EntityInterface $entity, ArrayObject $options, bool $result, $operation) Вызывается после проверки правил на сущности. Остановив это событие, вы можете вернуть окончательное значение операции проверки правил.

  • beforeSave(Event $event, EntityInterface $entity, ArrayObject $options) Вызывается перед сохранением каждой сущности. Остановка этого события прервет операцию сохранения. Когда событие останавливается, результат события возвращается.

  • afterSave(Event $event, EntityInterface $entity, ArrayObject $options) Вызывается после сохранения сущности.

  • beforeDelete(Event $event, EntityInterface $entity, ArrayObject $options) Вызывается перед удалением сущности. Остановив это событие, вы прервете операцию удаления.

  • afterDelete(Event $event, EntityInterface $entity, ArrayObject $options) Вызывается после удаления сущности.

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

Вы можете установить приоритет обратных вызовов поведения, используя параметр priority при добавлении поведения. Это установит приоритет для всех обратных вызовов, предоставляемых поведением.

Методы поиска

Поведения могут предоставлять методы поиска, которые подключаются к методу find() таблицы. Пользовательские методы поиска — отличный способ предоставить предварительно заданные запросы, относящиеся к вашему поведению. Например, SluggableBehavior может предоставить метод поиска find('slugged'). Методы поиска поведения реализуются так же, как и другие методы поиска. Любой метод, начинающийся с find будет настроен как метод поиска. Ваши методы поиска должны ожидать следующие аргументы:

findSlugged(Query $query, array $options)
Cake\ORM\Behavior реализует Cake\Event\EventListenerInterface использует Cake\Core\InstanceConfigTrait

Непосредственные подклассы

  • Cake\ORM\Behavior\CounterCacheBehavior
  • Cake\ORM\Behavior\TimestampBehavior
  • Cake\ORM\Behavior\TranslateBehavior
  • Cake\ORM\Behavior\TreeBehavior
Пространство имен: Cake\ORM
См.: \Cake\ORM\Table::addBehavior()
См.: Cake\Event\EventManager
Расположение: ORM/Behavior.php

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

  • $_defaultConfig protected
    array
    Конфигурация по умолчанию
  • $_reflectionCache protected static
    array
    Кэш отражающих методов для поведения.
  • $_table protected
    Cake\ORM\Table
    Экземпляр таблицы.

Унаследованные свойства

  • _config, _configInitialized

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

  • __construct() public
    Конструктор
  • _reflectionCache() protected
    Получение методов, реализованных этим поведением
  • _resolveMethodAliases() protected
    Удаление алиасов методов, которые в противном случае были бы дублированы конфигурацией пользовательского интерфейса.
  • implementedEvents() public
    Получение обратных вызовов модели, в которых заинтересовано это поведение.
  • implementedFinders() public
    implementedFinders
  • implementedMethods() public
    implementedMethods
  • initialize() public
    Метод подключения конструктора.
  • verifyConfig() public
    verifyConfig

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

__construct()source public

__construct( Cake\ORM\Table $table , array $config [] )

Конструктор

Объединяет конфигурацию с конфигурацией по умолчанию и сохраняет ее в свойстве config.

Параметры

Cake\ORM\Table $table
Таблица, к которой подключено это поведение.
массив $config необязательно []
Конфигурация для этого поведения.

_reflectionCache()source protected

_reflectionCache( )

Получение методов, реализованных этим поведением

Использует метод implementedEvents() для исключения методов обратного вызова. Методы, начинающиеся с _ будут пропущены, так же как и методы, объявленные в Cake\ORM\Behavior

Возвращает

массив

_resolveMethodAliases()source protected

_resolveMethodAliases( string $key , array $defaults , array $config )

Удаление алиасов методов, которые в противном случае были бы дублированы конфигурацией пользовательского интерфейса.

Параметры

строка $key
Ключ для фильтрации.
массив $defaults
Сопоставления методов по умолчанию.
массив $config
Настроенные сопоставления методов.

Возвращает

массив
Список конфигурации без дубликатов.

implementedEvents()source public

implementedEvents( )

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

Определяя один из методов обратного вызова, предполагается, что поведение заинтересовано в соответствующем событии.

Переопределите этот метод, если вам нужно добавить нестандартных обработчиков событий. Или если вы хотите, чтобы ваше поведение прослушивало нестандартные события.

Возвращает

массив

Реализация

Cake\Event\EventListenerInterface::implementedEvents()

implementedFinders()source public

implementedFinders( )

implementedFinders

Предоставляет сопоставление алиас->имя_метода, реализующие методы поиска поведения. Пример:

[
   'this' => 'findThis',
   'alias' => 'findMethodName'
 ]

С приведенным примером вызов $Table->find('this') вызовет $Behavior->findThis(), а вызов $Table->find('alias') вызовет $Behavior->findMethodName()

Рекомендуется, хотя и необязательно, определять implementedFinders в свойстве config дочерних классов, чтобы не было необходимости использовать отражение для получения доступного списка методов. См. примеры основных поведений.

Возвращает

массив

implementedMethods()source public

implementedMethods( )

implementedMethods

Предоставляет сопоставление алиас->имя_метода, реализующие методы поведения. Пример:

[
   'method' => 'method',
   'aliasedmethod' => 'somethingElse'
 ]

С приведенным примером вызов $Table->method() вызовет $Behavior->method(), а вызов $Table->aliasedmethod() вызовет $Behavior->somethingElse()

Рекомендуется, хотя и необязательно, определять implementedFinders в свойстве config дочерних классов, чтобы не было необходимости использовать отражение для получения доступного списка методов. См. примеры основных поведений.

Возвращает

массив

initialize()source public

initialize( array $config )

Метод подключения конструктора.

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

Параметры

массив $config
Параметры конфигурации, предоставленные этому поведению.

verifyConfig()source public

verifyConfig( )

Проверка конфигурации

Проверяет, что реализованные ключи содержат значения, указывающие на вызываемые функции.

Исключения

Cake\Core\Exception\Exception
если конфигурация неверна

Методы, используемые из Cake\Core\InstanceConfigTrait

_configDelete()source protected

_configDelete( string $key )

Удаление одного ключа конфигурации

Параметры

строка $key
Ключ для удаления.

Исключения

Cake\Core\Exception\Exception
если происходит попытка перезаписи существующей конфигурации

_configRead()source protected

_configRead( string|null $key )

Чтение переменной конфигурации

Параметры

строка|null $key
Ключ для чтения.

Возвращает

mixed

_configWrite()source protected

_configWrite( string|array $key , mixed $value , boolean|string $merge false )

Запись переменной конфигурации

Параметры

строка|массив $key
Ключ для записи.
смешанный $value
Значение для записи.
логическое значение|строка $merge опционально false

Истинное значение для рекурсивного слияния, 'shallow' для простого слияния, ложное значение для перезаписи, по умолчанию ложное.

Исключения

Cake\Core\Exception\Exception
если происходит попытка перезаписи существующей конфигурации

config()source public

config( string|array|null $key null , mixed|null $value null , boolean $merge true )

Использование

Чтение всей конфигурации:

$this->config();

Чтение определенного значения:

$this->config('key');

Чтение вложенного значения:

$this->config('some.nested.key');

Установка определенного значения:

$this->config('key', $value);

Установка вложенного значения:

$this->config('some.nested.key', $value);

Обновление нескольких настроек конфигурации одновременно:

$this->config(['one' => 'value', 'another' => 'value']);

Параметры

строка|массив|null $key опционально null
Ключ для получения/установки или весь массив конфигураций.
смешанный|null $value опционально null
Значение для установки.
логическое значение $merge опционально true
Истинное значение для рекурсивного слияния или перезаписи существующей конфигурации, по умолчанию истинное.

Возвращает

mixed
Значение конфигурации для чтения или сам объект при операциях записи.

Исключения

Cake\Core\Exception\Exception
При попытке установить недопустимый ключ.

configShallow()source public

configShallow( string|array $key , mixed|null $value null )

Объединение предоставленной конфигурации с существующей конфигурацией. В отличие от config(), которая выполняет рекурсивное слияние для вложенных ключей, этот метод выполняет простое слияние.

Установка определенного значения:

$this->config('key', $value);

Установка вложенного значения:

$this->config('some.nested.key', $value);

Обновление нескольких настроек конфигурации одновременно:

$this->config(['one' => 'value', 'another' => 'value']);

Параметры

строка|массив $key
Ключ для установки или весь массив конфигураций.
смешанный|null $value опционально null
Значение для установки.

Возвращает


$this Объект сам по себе.

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

$_defaultConfigsource

protected массив

Значения конфигурации по умолчанию

Они объединяются с предоставленной пользователем конфигурацией при использовании поведения.

[]

$_reflectionCachesource

protected статический массив

Кэш методов рефлексии для поведений.

Хранит отраженные методы + методы поиска по классам. Это предотвращает многократное отражение одного и того же класса в одном процессе.

[]

$_tablesource

protected Cake\ORM\Table

Экземпляр таблицы.

© 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/3.2/class-Cake.ORM.Behavior.html

Spec-Zone.ru

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