Класс 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
Если значение для события не равно 'всегда', 'новый' или 'существующий'
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') вызовет $Behavior->findThis(), а вызов $Table->find('alias') вызовет $Behavior->findMethodName()
Рекомендуется, хотя и необязательно, определять implementedFinders в свойстве config дочерних классов, чтобы не было необходимости использовать рефлексию для вывода доступного списка методов. См. примеры поведенческих шаблонов ядра.
Возвращает
массивИсключения
ReflectionExceptionimplementedMethods()source public
implementedMethods( )
Реализованные методы
Предоставляет отображение алиас->имя_метода, описывающее, какие методы реализует поведение. Пример:
[ '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 )
Удаляет один ключ конфигурации.
Параметры
- string
$key - Ключ для удаления.
Исключения
Cake\Core\Exception\Exceptionесли происходит попытка перезаписи существующей конфигурации
_configRead()source protected
_configRead( string|null $key )
Считывает ключ конфигурации.
Параметры
- string|null
$key - Ключ для считывания.
Возвращает
mixed_configWrite()source protected
_configWrite( string|array $key , mixed $value , boolean|string $merge = false )
Записывает ключ конфигурации.
Параметры
- string|array
$key - Ключ для записи.
- mixed
$value - Значение для записи.
- boolean|string
$mergeoptional 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() вместо этого.Параметры
- string|array|null
$keyoptional null - Ключ для получения/установки или массив конфигурации целиком.
- mixed|null
$valueoptional null - Значение для установки.
- boolean
$mergeoptional 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']);
Параметры
- string|array
$key - Ключ для установки или массив конфигурации целиком.
- mixed|null
$valueoptional 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'); Параметры
- string|null
$keyoptional null - Ключ для получения или null для всей конфигурации.
- mixed
$defaultoptional 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']);
Параметры
- string|array
$key - Ключ для установки или массив конфигурации целиком.
- mixed|null
$valueoptional null - Значение для установки.
- boolean
$mergeoptional true - Выполнять рекурсивное слияние или перезапись существующей конфигурации, по умолчанию – истина.
Возвращает
$this
Исключения
Cake\Core\Exception\ExceptionПри попытке установить недействительный ключ.
Подробное описание свойств
$_defaultConfigsource
protected array
Конфигурация по умолчанию
Эти значения объединяются с предоставленной пользователем конфигурацией при использовании поведения.
events - массив, индексированный именем события, содержащий поля, которые нужно обновлять и когда. Возможные значения для обновления поля: "всегда", "новый" или "существующий", чтобы установить значение поля всегда, только при создании нового записей или только при обновлении существующих.
refreshTimestamp - если истинно (по умолчанию), используемое значение метки времени — текущее время при выполнении кода. Чтобы установить явную дату и время, установите refreshTimestamp в ложь и вызовите 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.7/class-Cake.ORM.Behavior.TimestampBehavior.html