Spec-Zone.ru › CakePHP 4.2

Класс TranslateBehavior

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

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

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

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

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

  • $_config protected
    array

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

  • $_configInitialized protected
    bool

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

  • $_defaultConfig protected
    array

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

  • $_reflectionCache protected static
    array

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

  • $_table protected
    Cake\ORM\Table

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

  • $defaultStrategyClass protected static
    string

    Имя класса стратегии по умолчанию.

  • $strategy protected
    Cake\ORM\Behavior\Translate\TranslateStrategyInterface|null

    Экземпляр стратегии перевода.

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

  • __call() public

    Делегирование вызовов методов экземпляру класса стратегии.

  • __construct() public

    Конструктор

  • _configDelete() protected

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

  • _configRead() protected

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

  • _configWrite() protected

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

  • _reflectionCache() protected

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

  • _resolveMethodAliases() protected

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

  • buildMarshalMap() public

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

  • configShallow() public

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

  • createStrategy() protected

    Создание экземпляра стратегии.

  • findTranslations() public

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

  • getConfig() public

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

  • getConfigOrFail() public

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

  • getDefaultStrategyClass() public static

    Получение имени класса стратегии по умолчанию.

  • getLocale() public

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

  • getStrategy() public

    Получение экземпляра класса стратегии.

  • getTable() public deprecated

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

  • implementedEvents() public

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

  • implementedFinders() public

    implementedFinders

  • implementedMethods() public

    implementedMethods

  • initialize() public

    Метод инициализации

  • referenceName() protected

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

  • setConfig() public

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

  • setDefaultStrategyClass() public static

    Установка имени класса стратегии по умолчанию.

  • setLocale() public

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

  • setStrategy() public

    Установка экземпляра класса стратегии.

  • table() public

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

  • translationField() public

    Возвращает полное имя поля, используемое для перевода полей.

  • verifyConfig() public

    verifyConfig

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

__call() public

__call(string $method, array $args): mixed

Вызов методов экземпляра класса стратегии.

Параметры

string $method

Имя метода.

array $args

Аргументы метода.

Возвращает

mixed

__construct() public

__construct(Cake\ORM\Table $table, array $config = [])

Конструктор

Опции

  • fields: Список полей, которые необходимо перевести. Предоставление этого списка полей является обязательным при использовании EavStrategy. Если список полей пуст при использовании ShadowTableStrategy, то список будет автоматически сгенерирован на основе схемы shadow таблицы.
  • defaultLocale: Локаль, которая обрабатывается как локаль по умолчанию поведением. Значения полей для локаль по умолчанию будут храниться в основной таблице, а остальные - в таблице переводов. Если не указано явно, значение I18n::getDefaultLocale() будет использоваться для получения локаль по умолчанию. Если вы не хотите использовать локаль по умолчанию и хотите, чтобы переведенные поля для всех локалей хранились в таблице переводов, установите эту конфигурацию в пустую строку ''.
  • allowEmptyTranslations: По умолчанию, если запись была переведена и сохранена как пустая строка, поведение перевода будет использовать это значение для перезаписи исходного значения поля. Если вы не хотите этого поведения, установите эту опцию в false.
  • validator: Валидатор, который следует использовать при создании/изменении записей перевода. По умолчанию null.

Параметры

Cake\ORM\Table $table

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

array $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(string|array $key, mixed $value, bool|string $merge = false): void

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

Параметры

string|array $key

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

mixed $value

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

bool|string $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 $defaults, array $config): array

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

Параметры

string $key

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

array $defaults

Карта соответствия методов по умолчанию.

array $config

Настроенная карта соответствия методов.

Возвращает

array

buildMarshalMap() public

buildMarshalMap(Cake\ORM\Marshaller $marshaller, array $map, array $options): array

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

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

Параметры

Cake\ORM\Marshaller $marshaller

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

array $map

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

array $options

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

Возвращает

array

configShallow() public

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

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

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

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

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

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

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

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

Параметры

string|array $key

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

mixed|null $value optional

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

Возвращает

$this

createStrategy() protected

createStrategy(): Cake\ORM\Behavior\Translate\TranslateStrategyInterface

Создает экземпляр стратегии.

Возвращает

Cake\ORM\Behavior\Translate\TranslateStrategyInterface

findTranslations() public

findTranslations(Cake\ORM\Query $query, array $options): Cake\ORM\Query

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

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

Пример:

$article = $articles->find('translations', ['locales' => ['eng', 'deu'])->first();
$englishTranslatedFields = $article->get('_translations')['eng'];

Если массив locales не передан, он вернет все найденные переводы для каждой записи.

Параметры

Cake\ORM\Query $query

Исходный запрос для изменения

array $options

Параметры

Возвращает

Cake\ORM\Query

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

getDefaultStrategyClass() public static

getDefaultStrategyClass(): string

Получить имя класса стратегии по умолчанию.

Возвращает

string

getLocale() public

getLocale(): string

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

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

Возвращает

string

См. также

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

getStrategy() public

getStrategy(): Cake\ORM\Behavior\Translate\TranslateStrategyInterface

Получить экземпляр класса стратегии.

Возвращает

Cake\ORM\Behavior\Translate\TranslateStrategyInterface

getTable() public

getTable(): Cake\ORM\Table

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

Возвращает

Cake\ORM\Table

implementedEvents() public

implementedEvents(): array

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

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

Переопределите этот метод, если необходимо добавить обработчики событий, не относящихся к стандартным. Или если вы хотите, чтобы ваше поведение прослушивало нестандартные события.

Возвращает

array

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 $config): void

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

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

Параметры

array $config

Настройка для данного поведения.

Возвращает

void

referenceName() protected

referenceName(Cake\ORM\Table $table): string

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

Имя ссылки обычно определяется по имени класса объекта таблицы (PostsTable -> Posts), однако для экземпляров autotable оно определяется по имени таблицы в базе данных, к которой обращается объект - или в крайнем случае, по алиасу экземпляра autotable.

Параметры

Cake\ORM\Table $table

Класс таблицы, для которого нужно получить имя ссылки.

Возвращает

string

setConfig() public

setConfig(string|array $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']);

Параметры

string|array $key

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

mixed|null $value optional

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

bool $merge optional

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

Возвращает

$this

Исключения

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

setDefaultStrategyClass() public static

setDefaultStrategyClass(string $class): void

Установить имя класса стратегии по умолчанию.

Параметры

string $class

Имя класса.

Возвращает

void

setLocale() public

setLocale(string|null $locale): $this

Устанавливает локаль, которая должна использоваться для всех будущих операций поиска и сохранения в таблице, к которой прикреплено это поведение.

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

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

Параметры

string|null $locale

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

Возвращает

$this

См. также

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

Ссылки

https://book.cakephp.org/4/en/orm/behaviors/translate.html#retrieving-one-language-without-using-i18n-locale

https://book.cakephp.org/4/en/orm/behaviors/translate.html#saving-in-another-language

setStrategy() public

setStrategy(Cake\ORM\Behavior\Translate\TranslateStrategyInterface $strategy): $this

Установить экземпляр класса стратегии.

Параметры

Cake\ORM\Behavior\Translate\TranslateStrategyInterface $strategy

Экземпляр класса стратегии.

Возвращает

$this

table() public

table(): Cake\ORM\Table

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

Возвращает

Cake\ORM\Table

translationField() public

translationField(string $field): string

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

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

Параметры

string $field

Имя поля, которое нужно алиасить.

Возвращает

string

verifyConfig() public

verifyConfig(): void

verifyConfig

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

Возвращает

void

Исключения

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

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

$_config protected

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

Тип

array

$_configInitialized protected

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

Тип

bool

$_defaultConfig protected

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

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

Тип

array

$_reflectionCache protected static

Кэширование отражения методов для поведения.

Хранит отраженный метод + методы поиска по классу. Это предотвращает отражение одного и того же класса несколько раз в одном процессе.

Тип

array

$_table protected

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

Тип

Cake\ORM\Table

$defaultStrategyClass protected static

Имя класса стратегии по умолчанию.

Тип

string

$strategy protected

Экземпляр стратегии перевода.

Тип

Cake\ORM\Behavior\Translate\TranslateStrategyInterface|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.2/class-Cake.ORM.Behavior.TranslateBehavior.html

Spec-Zone.ru

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