Spec-Zone.ru › CakePHP 4.4

Класс TimestampBehavior

Класс TimestampBehavior

Пространство имён: Cake\ORM\Behavior

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

  • $_config protected
    array<string, mixed>

    Конфигурация выполнения

  • $_configInitialized protected
    bool

    Указание, была ли конфигурация уже настроена по умолчанию

  • $_defaultConfig protected
    array<string, mixed>

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

  • $_reflectionCache protected static
    array<string, array>

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

  • $_table protected
    Cake\ORM\Table

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

  • $_ts protected
    Cake\I18n\FrozenTime|null

    Текущая метка времени

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

  • __construct() public

    Конструктор

  • _configDelete() protected

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

  • _configRead() protected

    Считывает значение ключа конфигурации.

  • _configWrite() protected

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

  • _reflectionCache() protected

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

  • _resolveMethodAliases() protected

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

  • _updateField() protected

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

  • configShallow() public

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

  • getConfig() public

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

  • getConfigOrFail() public

    Возвращает конфигурацию для определенного ключа.

  • getTable() public deprecated

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

  • handleEvent() public

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

  • implementedEvents() public

    implementedEvents

  • implementedFinders() public

    implementedFinders

  • implementedMethods() public

    implementedMethods

  • initialize() public

    Инициализирующий метод

  • setConfig() public

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

  • table() public

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

  • timestamp() public

    Получить или установить метку времени, которая будет использоваться

  • touch() public

    Обновить метку времени для сущности

  • verifyConfig() public

    verifyConfig

END_OF_DOCUMENT_MARKER

Метод Detail

__construct() public

__construct(Cake\ORM\Table $table, array<string, mixed> $config = [])

Конструктор

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

Параметры

Cake\ORM\Table $table

Таблица, к которой прикреплено это поведение.

array<string, mixed> $config optional

Конфигурация этого поведения.

_configDelete() protected

_configDelete(string $key): void

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

Параметры

string $key

Ключ для удаления.

Возвращает

void

Выбрасывает

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

_configRead() protected

_configRead(string|null $key): mixed

Считывает значение ключа конфигурации.

Параметры

string|null $key

Ключ для чтения.

Возвращает

mixed

_configWrite() protected

_configWrite(array<string, mixed>|string $key, mixed $value, string|bool $merge = false): void

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

Параметры

array<string, mixed>|string $key

Ключ для записи.

mixed $value

Значение для записи.

string|bool $merge optional

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

Возвращает

void

Выбрасывает

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

_reflectionCache() protected

_reflectionCache(): array

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

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

Возвращает

array

Выбрасывает

ReflectionException

_resolveMethodAliases() protected

_resolveMethodAliases(string $key, array<string, mixed> $defaults, array<string, mixed> $config): array

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

Параметры

string $key

Ключ для фильтрации.

array<string, mixed> $defaults

Настройки методов по умолчанию.

array<string, mixed> $config

Настройки пользовательских отображений методов.

Возвращает

array

_updateField() protected

_updateField(Cake\Datasource\EntityInterface $entity, string $field, bool $refreshTimestamp): void

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

Параметры

Cake\Datasource\EntityInterface $entity

Экземпляр сущности.

string $field

Имя поля.

bool $refreshTimestamp

Обновить метку времени.

Возвращает

void

configShallow() public

configShallow(array<string, mixed>|string $key, mixed|null $value = null): $this

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

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

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

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

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

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

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

Параметры

array<string, mixed>|string $key

Ключ для установки или полный массив конфигураций.

mixed|null $value optional

Значение для установки.

Возвращает

$this

getConfig() public

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

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

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

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

$this->getConfig();

Чтение конкретного значения:

$this->getConfig('key');

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

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

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

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

Параметры

string|null $key optional

Ключ для получения или null для всей конфигурации.

mixed $default optional

Значение по умолчанию, если ключ не найден.

Возвращает

mixed

getConfigOrFail() public

getConfigOrFail(string $key): mixed

Возвращает конфигурацию для определенного ключа.

Значение конфигурации для этого ключа должно существовать, оно никогда не может быть null.

Параметры

string $key

Ключ для получения.

Возвращает

mixed

Выбрасывает

InvalidArgumentException

getTable() public

getTable(): Cake\ORM\Table

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

Возвращает

Cake\ORM\Table

handleEvent() public

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

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

Параметры

Cake\Event\EventInterface $event

Экземпляр события.

Cake\Datasource\EntityInterface $entity

Экземпляр сущности.

Возвращает

true

Выбрасывает

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

implementedEvents() public

implementedEvents(): array<string, mixed>

implementedEvents

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

Возвращает

array<string, mixed>

implementedFinders() public

implementedFinders(): array

implementedFinders

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

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

В приведенном выше примере вызов $table->find('this') вызовет $behavior->findThis(), а вызов $table->find('alias') вызовет $behavior->findMethodName().

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

Возвращает

array

Выбрасывает

ReflectionException

implementedMethods() public

implementedMethods(): array

implementedMethods

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

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

В приведенном выше примере вызов $table->method() вызовет $behavior->method(), а вызов $table->aliasedMethod() вызовет $behavior->somethingElse().

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

Возвращает

array

Выбрасывает

ReflectionException

initialize() public

initialize(array<string, mixed> $config): void

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

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

Параметры

array<string, mixed> $config

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

Возвращает

void

setConfig() public

setConfig(array<string, mixed>|string $key, mixed|null $value = null, bool $merge = true): $this

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

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

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

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

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

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

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

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

Параметры

array<string, mixed>|string $key

Ключ для установки или массив конфигурации.

mixed|null $value необязательно

Значение для установки.

bool $merge необязательно

Выполнять рекурсивное слияние или перезаписывать существующую конфигурацию, по умолчанию true.

Возвращает

$this

Исключения

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

table() public

table(): Cake\ORM\Table

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

Возвращает

Cake\ORM\Table

timestamp() public

timestamp(DateTimeInterface|null $ts = null, bool $refreshTimestamp = false): Cake\I18n\FrozenTime

Получение или установка отметки времени.

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

Параметры

DateTimeInterface|null $ts необязательно

Отметка времени

bool $refreshTimestamp необязательно

Если true, отметка времени обновляется.

Возвращает

Cake\I18n\FrozenTime

touch() public

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

Обновить сущность

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

Параметры

Cake\Datasource\EntityInterface $entity

Экземпляр сущности.

string $eventName необязательно

Имя события.

Возвращает

bool

verifyConfig() public

verifyConfig(): void

verifyConfig

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

Возвращает

void

Исключения

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

Детали свойств

$_config protected

Конфигурация во время выполнения

Тип

array<string, mixed>

$_configInitialized protected

Указание, была ли конфигурация уже настроена с настройками по умолчанию

Тип

bool

$_defaultConfig protected

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

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

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

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

Тип

array<string, mixed>

$_reflectionCache protected static

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

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

Тип

array<string, array>

$_table protected

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

Тип

Cake\ORM\Table

$_ts protected

Текущая отметка времени

Тип

Cake\I18n\FrozenTime|null

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

Spec-Zone.ru

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