Spec-Zone.ru › CakePHP 4.3

Class EavStrategy

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

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

Если вы хотите получить все или определённые языки для каждой из извлечённых записей, вы можете использовать пользовательский поиск translations таблицы TranslateBehavior, который доступен для таблицы.

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

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

  • $_config protected
    array<string, mixed>

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

  • $_configInitialized protected
    bool

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

  • $_defaultConfig protected
    array<string, mixed>

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

  • $_tableLocator protected
    Cake\ORM\Locator\LocatorInterface|null

    Экземпляр локейтора таблиц

  • $defaultTable protected
    string|null

    Псевдоним таблицы по умолчанию для данного объекта.

  • $locale protected
    string|null

    Имя локали, которое будет использоваться для переопределения полей в связанной таблице из таблицы переводов

  • $table protected
    Cake\ORM\Table

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

  • $translationTable protected
    Cake\ORM\Table

    Экземпляр таблицы, ответственной за перевод

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

  • __construct() public

    Конструктор

  • _configDelete() protected

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

  • _configRead() protected

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

  • _configWrite() protected

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

  • afterSave() public

    Сбрасывает временное свойство _i18n после сохранения сущности

  • beforeFind() public

    Метод обратного вызова, который слушает событие beforeFind в связанной таблице. Он изменяет переданный запрос, загружая переведенные поля и добавляя форматировщик для копирования значений в записи основной таблицы.

  • beforeSave() public

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

  • buildMarshalMap() public

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

  • bundleTranslatedFields() protected

    Вспомогательный метод, используемый для генерации нескольких сущностей переведенных полей из данных, найденных в свойстве _translations в переданной сущности. Результат будет помещён в его свойство _i18n.

  • configShallow() public

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

  • fetchTable() public

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

  • findExistingTranslations() protected

    Возвращает идентификаторы, найденные для каждого из массивов условий, переданных для таблицы переводов. Каждая запись индексируется соответствующим положением в массиве условий.

  • getConfig() public

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

  • getConfigOrFail() public

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

  • getLocale() public

    Возвращает текущую локаль.

  • getTableLocator() public

    Получает локейтор таблиц.

  • getTranslationTable() public

    Возвращает экземпляр таблицы переводов.

  • groupTranslations() public

    Изменяет результаты поиска таблицы, чтобы объединить полные записи переводов в каждую сущность под ключом _translations.

  • rowMapper() protected

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

  • setConfig() public

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

  • setLocale() public

    Устанавливает локаль для использования.

  • setTableLocator() public

    Устанавливает локейтор таблиц.

  • setupAssociations() protected

    Создаёт связи между связанной таблицей и каждым полем, переданным в этот метод.

  • translationField() public

    Возвращает полное алиасированное имя поля для переведенных полей.

  • unsetEmptyFields() protected

    Удаляет пустые переводы, чтобы избежать сохранения.

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

__construct() public

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

Конструктор

Parameters

Cake\ORM\Table $table

Таблица, к которой прикреплена эта стратегия.

array<string, mixed> $config optional

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

_configDelete() protected

_configDelete(string $key): void

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

Parameters

string $key

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

Returns

void

Throws

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

_configRead() protected

_configRead(string|null $key): mixed

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

Parameters

string|null $key

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

Returns

mixed

_configWrite() protected

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

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

Parameters

array<string, mixed>|string $key

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

mixed $value

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

string|bool $merge optional

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

Returns

void

Throws

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

afterSave() public

afterSave(Cake\Event\EventInterface $event, Cake\Datasource\EntityInterface $entity): void

Сбрасывает временное свойство _i18n после того, как сущность была сохранена

Parameters

Cake\Event\EventInterface $event

Событие beforeSave, которое было вызвано

Cake\Datasource\EntityInterface $entity

Сущность, которая будет сохранена

Returns

void

beforeFind() public

beforeFind(Cake\Event\EventInterface $event, Cake\ORM\Query $query, ArrayObject $options): void

Метод обратного вызова, который прослушивает событие beforeFind в привязанной таблице. Он изменяет переданный запрос, загружая поля перевода и добавляя форматировщик для копирования значений в основные записи таблицы.

Parameters

Cake\Event\EventInterface $event

Событие beforeFind, которое было вызвано.

Cake\ORM\Query $query

Запрос

ArrayObject $options

Параметры для запроса

Returns

void

beforeSave() public

beforeSave(Cake\Event\EventInterface $event, Cake\Datasource\EntityInterface $entity, ArrayObject $options): void

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

Parameters

Cake\Event\EventInterface $event

Событие beforeSave, которое было вызвано

Cake\Datasource\EntityInterface $entity

Сущность, которая будет сохранена

ArrayObject $options

Параметры, переданные в метод save

Returns

void

buildMarshalMap() public

buildMarshalMap(Cake\ORM\Marshaller $marshaller, array $map, array<string, mixed> $options): array

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

Добавляет обработчики маршалинга _translations. Вы можете отключить маршалинг переводов, установив 'translations' => false в параметрах, предоставленных Table::newEntity() или Table::patchEntity().

Parameters

Cake\ORM\Marshaller $marshaller

Маршалер таблицы, к которой прикреплено поведение.

array $map

Создаваемая карта свойств.

array<string, mixed> $options

Массив параметров, используемый в вызове маршалинга.

Returns

array

bundleTranslatedFields() protected

bundleTranslatedFields(Cake\Datasource\EntityInterface $entity): void

Вспомогательный метод, используемый для генерации нескольких сущностей переведённых полей из данных, найденных в свойстве _translations в переданной сущности. Результат будет помещён в его свойство _i18n.

Parameters

Cake\Datasource\EntityInterface $entity

Сущность

Returns

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']);

Parameters

array<string, mixed>|string $key

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

mixed|null $value optional

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

Returns

$this

fetchTable() public

fetchTable(string|null $alias = null, array<string, mixed> $options = []): Cake\ORM\Table

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

Parameters

string|null $alias optional

Имя псевдонима, которое вы хотите получить. Должно быть в формате CamelCase. Если null, то используется значение свойства $defaultTable.

array<string, mixed> $options optional

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

Returns

Cake\ORM\Table

Throws

Cake\Core\Exception\CakeException
Если аргумент `$alias` и свойство `$defaultTable` оба равны `null`.

See Also

\Cake\ORM\TableLocator::get()

findExistingTranslations() protected

findExistingTranslations(array $ruleSet): array

Возвращает найденные id для каждого из переданных массивов условий для таблицы переводов. Каждая запись индексируется соответствующей позицией в массиве условий.

Parameters

array $ruleSet

Массив массивов условий, которые будут использоваться для поиска каждого

Returns

array

getConfig() public

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

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

Usage

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

$this->getConfig();

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

$this->getConfig('key');

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

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

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

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

Parameters

string|null $key optional

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

mixed $default optional

Возвращаемое значение, когда ключ не существует.

Returns

mixed

getConfigOrFail() public

getConfigOrFail(string $key): mixed

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

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

Parameters

string $key

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

Returns

mixed

Throws

InvalidArgumentException

getLocale() public

getLocale(): string

Возвращает текущий язык.

Если язык не был явно установлен через setLocale(), этот метод вернет текущий глобально настроенный язык.

Returns

string

See Also

\Cake\I18n\I18n::getLocale()
\Cake\ORM\Behavior\TranslateBehavior::setLocale()

getTableLocator() public

getTableLocator(): Cake\ORM\Locator\LocatorInterface

Получает локатор таблицы.

Returns

Cake\ORM\Locator\LocatorInterface

getTranslationTable() public

getTranslationTable(): Cake\ORM\Table

Возвращает экземпляр таблицы переводов.

Возвращает

Cake\ORM\Table

groupTranslations() public

groupTranslations(Cake\Datasource\ResultSetInterface $results): Cake\Collection\CollectionInterface

Модифицирует результаты поиска в таблице, чтобы объединить записи полного перевода в каждую сущность под ключом _translations.

Параметры

Cake\Datasource\ResultSetInterface $results

Результаты для модификации.

Возвращает

Cake\Collection\CollectionInterface

rowMapper() protected

rowMapper(Cake\Datasource\ResultSetInterface $results, string $locale): Cake\Collection\CollectionInterface

Модифицирует результаты поиска в таблице, чтобы объединить переведенные поля в каждую сущность для заданного языка.

Параметры

Cake\Datasource\ResultSetInterface $results

Результаты для преобразования.

string $locale

Строка языка

Возвращает

Cake\Collection\CollectionInterface

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 optional

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

bool $merge optional

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

Возвращает

$this

Исключения

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

setLocale() public

setLocale(string|null $locale): $this

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

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

Обратите внимание, что в случае, если у сущности есть свойство _locale, этот язык будет иметь приоритет над языком, установленным с помощью этого метода (и над глобально настроенным языком!).

Параметры

string|null $locale

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

Возвращает

$this

setTableLocator() public

setTableLocator(Cake\ORM\Locator\LocatorInterface $tableLocator): $this

Устанавливает локатор таблицы.

Параметры

Cake\ORM\Locator\LocatorInterface $tableLocator

Экземпляр LocatorInterface.

Возвращает

$this

setupAssociations() protected

setupAssociations(): void

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

Кроме того, создает связь i18n HasMany, которая будет использоваться для извлечения всех переводов для каждой записи в связанной таблице.

Возвращает

void

translationField() public

translationField(string $field): string

Возвращает полностью алиасноё имя поля для переведенных полей.

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

Параметры

string $field

Имя поля, которое нужно преобразовать.

Возвращает

string

unsetEmptyFields() protected

unsetEmptyFields(Cake\Datasource\EntityInterface $entity): void

Сбрасывает пустые переводы, чтобы избежать сохранения.

Должен вызываться только если $this->_config['allowEmptyTranslations'] имеет значение false.

Параметры

Cake\Datasource\EntityInterface $entity

Сущность, в которой нужно проверить пустые поля переводов.

Возвращает

void

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

$_config protected

Конфигурация runtime

Тип

array<string, mixed>

$_configInitialized protected

Настроено ли свойство конфигурации значениями по умолчанию

Тип

bool

$_defaultConfig protected

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

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

Тип

array<string, mixed>

$_tableLocator protected

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

Тип

Cake\ORM\Locator\LocatorInterface|null

$defaultTable protected

Псевдоним таблицы по умолчанию для данного объекта.

Тип

string|null

$locale protected

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

Тип

string|null

$table protected

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

Тип

Cake\ORM\Table

$translationTable protected

Экземпляр таблицы, отвечающей за перевод

Тип

Cake\ORM\Table

© 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.3/class-Cake.ORM.Behavior.Translate.EavStrategy.html

Spec-Zone.ru

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