Класс 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если значение параметра 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, метка времени обновляется.
Возвращает
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( )
Реализованные поиск
Предоставляет карту alias->methodname, в котором поведение реализует поиск. Пример:
[ 'this' => 'findThis', 'alias' => 'findMethodName' ]
В приведенном выше примере вызов $Table->find('this') вызовет $Behavior->findThis(), а вызов $Table->find('alias') вызовет $Behavior->findMethodName()
Рекомендуется (хотя и не обязательно) определять implementedFinders в свойстве config дочерних классов, чтобы не было необходимости использовать рефлексию для получения списка доступных методов. Смотрите примеры в базовых поведениих
Возвращает
массивИсключения
ReflectionExceptionimplementedMethods()source public
implementedMethods( )
Реализованные методы
Предоставляет карту alias->methodname, в котором поведение реализует методы. Пример:
[ 'method' => 'method', 'aliasedmethod' => 'somethingElse' ]
В приведенном выше примере вызов $Table->method() вызовет $Behavior->method(), а вызов $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 True для рекурсивного слияния, 'shallow' для простого слияния, false для перезаписи, по умолчанию false.
Исключения
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 - Выполнять рекурсивное слияние или перезаписывать существующую конфигурацию, по умолчанию 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Значение конфигурации, которое считывается.
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 - Выполнять рекурсивное слияние или перезаписывать существующую конфигурацию, по умолчанию true.
Возвращает
$this
Исключения
Cake\Core\Exception\ExceptionПри попытке установить недопустимый ключ.
Подробности свойств
$_defaultConfigsource
protected массив
Конфигурация по умолчанию
Эти значения сливаются с предоставленными пользователем настройками при использовании поведения.
events - массив с именем события в качестве ключа, содержащий поля, которые нужно обновить, и когда, для заданного события возможные значения для обновления поля — "всегда", "новый" или "существующий", для установки значения поля всегда, только при создании нового запися или только при обновлении существующей записи.
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.6/class-Cake.ORM.Behavior.TimestampBehavior.html