Класс TimestampBehavior
Класс TimestampBehavior
- Cake\ORM\Behavior implements Cake\Event\EventListenerInterface uses Cake\Core\InstanceConfigTrait
-
Cake\ORM\Behavior\TimestampBehavior
Краткое описание свойств
-
$_defaultConfigprotectedКонфигурация по умолчаниюarray - Текущая метка времени
$_tsprotected
Унаследованные свойства
Краткое описание методов
- _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если значение поля определено неправильно
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, метка времени обновляется.
Возвращает
Cake\I18n\Timetouch()source public
touch( Cake\Datasource\EntityInterface $entity , string $eventName = 'Model.beforeSave' )
Обновить метку времени сущности
Обновляет поля меток времени сущности. Для полей, настроенных на обновление "всегда" или "существующее", обновляет значение метки времени. Этот метод перезапишет любое существующее значение.
Параметры
-
Cake\Datasource\EntityInterface$entity - Экземпляр сущности.
- строка
$eventNameнеобязательно 'Model.beforeSave' - Имя события.
Возвращает
booleantrue, если поле обновлено, false, если действие не выполнено
Методы, унаследованные от Cake\ORM\Behavior
__construct()source public
__construct( Cake\ORM\Table $table , array $config = [] )
Конструктор
Объединяет конфигурацию с конфигурацией по умолчанию и сохраняет в свойстве config
Параметры
-
Cake\ORM\Table$table - Таблица, к которой прикреплено это поведение.
- массив
$configнеобязательно [] - Конфигурация для этого поведения.
_reflectionCache()source protected
_reflectionCache( )
Получить методы, реализованные этим поведением
Использует метод implementedEvents() для исключения методов обратного вызова. Методы, начинающиеся с _ будут игнорироваться, как и методы, объявленные в Cake\ORM\Behavior
Возвращает
массивИсключения
ReflectionException_resolveMethodAliases()source protected
_resolveMethodAliases( string $key , array $defaults , array $config )
Удаляет алиасы методов, которые в противном случае будут дублироваться конфигурацией пользовательского интерфейса.
Параметры
- строка
$key - Ключ для фильтрации.
- массив
$defaults - Карта методов по умолчанию.
- массив
$config - Настроенная карта методов.
Возвращает
массивСписок данных конфигурации без дубликатов.
getTable()source public
getTable( )
Получить экземпляр таблицы, к которому привязано это поведение.
Возвращает
Cake\ORM\TableЭкземпляр привязанной таблицы.
implementedFinders()source public
implementedFinders( )
Реализованные методы поиска
Предоставляет соответствие алиас->имя_метода для реализованных методов поиска. Пример:
[ 'this' => 'findThis', 'alias' => 'findMethodName' ]
В приведенном примере вызов $Table->find('this') вызовет %%%CODE_BLOCK_47%%>, а вызов $Table->find('alias') вызовет $Behavior->findMethodName()
Рекомендуется, хотя и не обязательно, определять implementedFinders в свойстве config дочерних классов, чтобы не приходилось использовать рефлексию для получения списка доступных методов. См. примеры основных поведений
Возвращает
массивИсключения
ReflectionExceptionimplementedMethods()source public
implementedMethods( )
Реализованные методы
Предоставляет соответствие алиас->имя_метода для реализованных методов. Пример:
[ 'method' => 'method', 'aliasedmethod' => 'somethingElse' ]
В приведенном примере вызов $Table->method() вызовет %%%CODE_BLOCK_53%%>, а вызов $Table->aliasedmethod() вызовет $Behavior->somethingElse()
Рекомендуется, хотя и не обязательно, определять implementedFinders в свойстве config дочерних классов, чтобы не приходилось использовать рефлексию для получения списка доступных методов. См. примеры основных поведений
Возвращает
массивИсключения
ReflectionExceptionverifyConfig()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 - Ключ для чтения.
Возвращает
mixed_configWrite()source protected
_configWrite( string|array $key , mixed $value , boolean|string $merge = false )
Записывает ключ конфигурации.
Параметры
- строка|массив
$key - Ключ для записи.
- mixed
$value - Значение для записи.
- boolean|строка
$mergeнеобязательно false Истина для рекурсивного слияния, 'shallow' для простого слияния, ложь для перезаписи, по умолчанию ложь.
Возможные исключения
Cake\Core\Exception\Exceptionесли происходит попытка перезаписи существующей конфигурации
config()source public deprecated
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 - Ключ для получения/установки или весь массив конфигурации.
- mixed|null
$valueнеобязательно null - Значение для установки.
- boolean
$mergeнеобязательно true - Рекурсивно сливать или перезаписывать существующую конфигурацию, по умолчанию - истина.
Возвращает
mixedЗначение конфигурации, которое читается, или сам объект при операциях записи.
Возможные исключения
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 - Ключ для установки или весь массив конфигурации.
- mixed|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 для всей конфигурации.
- mixed
$defaultнеобязательно null - Возвращаемое значение, если ключ не существует.
Возвращает
mixedДанные конфигурации по указанному ключу или 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 - Ключ для установки или весь массив конфигурации.
- mixed|null
$valueнеобязательно null - Значение для установки.
- boolean
$mergeнеобязательно true - Рекурсивно сливать или перезаписывать существующую конфигурацию, по умолчанию - истина.
Возвращает
$this
Возможные исключения
Cake\Core\Exception\ExceptionПри попытке установить недопустимый ключ.
Подробное описание свойств
$_defaultConfigsource
protected массив
Конфигурация по умолчанию
Эти значения сливаются с предоставленными пользователем при использовании поведения.
events - массив с именами событий в качестве ключей, содержащий поля для обновления и время обновления. Возможные значения для времени обновления поля: "always", "new" или "existing" (для установки значения поля всегда, только при создании нового или только при обновлении существующего).
refreshTimestamp - если true (значение по умолчанию), используется текущее время при выполнении кода. Для установки явного значения даты и времени - установите refreshTimestamp в false и вызовите setTimestamp() на классе поведения перед использованием.
[
'implementedFinders' => [],
'implementedMethods' => [
'timestamp' => 'timestamp',
'touch' => 'touch'
],
'events' => [
'Model.beforeSave' => [
'created' => 'new',
'modified' => 'always'
]
],
'refreshTimestamp' => true
]
© 2005–present 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.8/class-Cake.ORM.Behavior.TimestampBehavior.html