Spec-Zone.ru › CakePHP 3.4

Класс TimestampBehavior

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

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

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

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

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 может предоставить метод поиска «slugged». Методы поиска поведения реализуются так же, как и другие методы поиска. Любой метод, начинающийся с find, будет настроен как метод поиска. Ваши методы поиска должны ожидать следующие аргументы:

findSlugged(Query $query, array $options)
Cake\ORM\Behavior реализует Cake\Event\EventListenerInterface использует Cake\Core\InstanceConfigTrait
Extended by Cake\ORM\Behavior\TimestampBehavior
Пространство имен: Cake\ORM\Behavior
См.: \Cake\ORM\Table::addBehavior()
См.: Cake\Event\EventManager
Расположение: ORM/Behavior/TimestampBehavior.php

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

  • $_defaultConfig protected
    array
    Конфигурация по умолчанию
  • $_ts protected
    DateTime
    Текущая метка времени

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

  • _reflectionCache, _table _config, _configInitialized

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

  • _updateField() protected
    Обновление поля, если оно еще не было обновлено
  • handleEvent() public
    Существует только один обработчик событий, он может быть настроен на вызов для любого события
  • implementedEvents() public
    Реализованные события
  • initialize() public
    Обработчик инициализации
  • timestamp() public
    Получение или установка используемой метки времени
  • touch() public
    Обновление сущности

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

_updateField()source protected

_updateField( Cake\Datasource\EntityInterface $entity , string $field , boolean $refreshTimestamp )

Обновление поля, если оно еще не было обновлено

Параметры

Cake\Datasource\EntityInterface $entity
Экземпляр сущности.
строка $field
Имя поля
логическое значение $refreshTimestamp
Необходимо ли обновить метку времени.

handleEvent()source public

handleEvent( Cake\Event\Event $event , Cake\Datasource\EntityInterface $entity )

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

Параметры

Cake\Event\Event $event
Экземпляр события.
Cake\Datasource\EntityInterface $entity
Экземпляр сущности.

Возвращает

boolean
Возвращает true независимо от логики поведения, сохранение не будет предотвращено.

Исключения

UnexpectedValueException
если значение поля when задано неправильно
UnexpectedValueException
Если значение для события не равно 'always', 'new' или 'existing'

implementedEvents()source public

implementedEvents( )

Реализованные события

Реализованные события этого поведения зависят от конфигурации

Возвращает

массив

Переопределяет

Cake\ORM\Behavior::implementedEvents()

initialize()source public

initialize( array $config )

Обработчик инициализации

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

Параметры

массив $config
Конфигурация для этого поведения.

Переопределяет

Cake\ORM\Behavior::initialize()

timestamp()source public

timestamp( DateTime $ts null , boolean $refreshTimestamp false )

Получение или установка используемой метки времени

Установите метку времени на указанный объект DateTime или, если он не передан, новый объект DateTime. Если передан явный объект DateTime, опция конфигурации refreshTimestamp автоматически устанавливается в false.

Параметры

DateTime $ts необязательно null
Метка времени
логическое значение $refreshTimestamp необязательно false
Если true, метка времени обновляется.

Возвращает

DateTime

touch()source public

touch( Cake\Datasource\EntityInterface $entity , string $eventName 'Model.beforeSave' )

Обновление сущности

Обновляет поля метки времени для сущности. Для любых полей, настроенных на обновление «всегда» или «существующие», обновляет значение метки времени. Этот метод перезапишет любое ранее существующее значение.

Параметры

Cake\Datasource\EntityInterface $entity
Экземпляр сущности.
строка $eventName необязательно 'Model.beforeSave'
Имя события.

Возвращает

boolean
true, если поле обновлено, false, если действие не выполнено

Методы, унаследованные от Cake\ORM\Behavior

__construct()source public

__construct( Cake\ORM\Table $table , array $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
Настраиваемые сопоставления методов.

Возвращает

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

getTable()source public

getTable( )

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

Возвращает

Cake\ORM\Table
Экземпляр привязанной таблицы.

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 дочерних классов, чтобы не было необходимости использовать рефлексию для получения списка доступных методов. См. примеры в основных поведенческих модулях.

Возвращает

массив

verifyConfig()source public

verifyConfig( )

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
Ключ для чтения.

Возвращает

смешанный тип

_configWrite()source protected

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

Записывает конфигурационный ключ.

Параметры

строка|массив $key
Ключ для записи.
смешанный тип $value
Значение для записи.
boolean|строка $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']);

Устаревшее

3.4.0 используйте setConfig()/getConfig() вместо этого.

Параметры

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

Возвращает

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

Выбрасывает

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

configShallow()source public

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

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

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

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

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

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

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

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

Параметры

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

Возвращает


$this

getConfig()source public

getConfig( string|null $key null , mixed $default null )

Возвращает конфигурацию.

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

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

$this->getConfig();

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

$this->getConfig('key');

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

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

Чтение со значением по умолчанию:

$this->getConfig('some-key', 'default-value');

Параметры

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

Возвращает

смешанный тип
Значение конфигурации, которое читается.

setConfig()source public

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

Устанавливает конфигурацию.

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

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

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

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

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

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

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

Параметры

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

Возвращает


$this

Выбрасывает

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

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

$_defaultConfigsource

protected массив

Конфигурация по умолчанию

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

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

refreshTimestamp - если истинно (по умолчанию), используемое временное значение будет текущим временем при выполнении кода. Чтобы установить явную дату и время, установите refreshTimestamp в ложь и вызовите setTimestamp() в классе поведения перед использованием.

[
    'implementedFinders' => [],
    'implementedMethods' => [
        'timestamp' => 'timestamp',
        'touch' => 'touch'
    ],
    'events' => [
        'Model.beforeSave' => [
            'created' => 'new',
            'modified' => 'always'
        ]
    ],
    'refreshTimestamp' => true
]

$_tssource

protected DateTime

Текущее временное значение

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

Spec-Zone.ru

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