Класс TranslateBehavior
Это поведение предоставляет способ перевода динамических данных, сохраняя переводы в отдельной таблице, связанной с исходной записью из другой. Переведенные поля можно настроить так, чтобы они переопределяли поля в основной таблице при извлечении или помещались в другое свойство того же сущности.
Если вы хотите переопределить поля, вам необходимо вызвать метод locale в этом поведении для установки языка, который нужно извлечь из таблицы переводов.
Если вы хотите получить все или определенные языки для каждой из извлечённых записей, вы можете использовать пользовательские translations поисковые запросы, которые доступны для таблицы.
- Cake\ORM\Behavior реализует Cake\Event\EventListenerInterface использует Cake\Core\InstanceConfigTrait
-
Cake\ORM\Behavior\TranslateBehavior использует Cake\ORM\Locator\LocatorAwareTrait
Подробное описание методов
__constructисточник public
__construct( Cake\ORM\Table $table , array $config [] )
Конструктор
Параметры
-
Cake\ORM\Table$table - Таблица, к которой прикреплено это поведение.
- массив
$configнеобязательный [] - Настройка для этого поведения.
Переопределяет
Cake\ORM\Behavior::__construct() _bundleTranslatedFieldsисточник protected
_bundleTranslatedFields( Cake\Datasource\EntityInterface $entity )
Вспомогательный метод, используемый для создания нескольких сущностей переведенных полей из данных, найденных в свойстве _translations в переданной сущности. Результат будет помещён в свойство _i18n.
Параметры
-
Cake\Datasource\EntityInterface$entity - Сущность
_findExistingTranslationsисточник protected
_findExistingTranslations( array $ruleSet )
Возвращает идентификаторы, найденные для каждого из массивов условий, переданных для таблицы переводов. Каждая запись индексируется по соответствующей позиции в массиве условий.
Параметры
- массив
$ruleSet - массив массивов условий, которые будут использоваться для поиска каждого
Возвращает
arrayмассив
_referenceNameисточник protected
_referenceName( Cake\ORM\Table $table )
Определяет имя ссылки, которое следует использовать для данной таблицы.
Имя ссылки обычно выводится из имени класса объекта таблицы (PostsTable -> Posts), однако для объектов автотаблиц оно выводится из таблицы базы данных, к которой обращается объект, или, в крайнем случае, из псевдонима объекта автотаблицы.
Параметры
-
Cake\ORM\Table$table - Класс таблицы, для которого необходимо получить имя ссылки.
Возвращает
stringстрока
_rowMapperисточник protected
_rowMapper( Cake\Datasource\ResultSetInterface $results , string $locale )
Изменяет результаты поиска в таблице, чтобы объединить переведенные поля в каждую сущность для данного языка.
Параметры
-
Cake\Datasource\ResultSetInterface$results - Результаты для отображения.
- строка
$locale - Строка языка
Возвращает
Cake\Collection\Collection\Cake\Collection\Collection
afterSaveисточник public
afterSave( Cake\Event\Event $event , Cake\Datasource\EntityInterface $entity )
Сбрасывает временное свойство _i18n после сохранения сущности.
Параметры
-
Cake\Event\Event$event - Событие beforeSave, которое было запущено
-
Cake\Datasource\EntityInterface$entity - Сущность, которая будет сохранена
beforeFindисточник public
beforeFind( Cake\Event\Event $event , Cake\ORM\Query $query , ArrayObject $options )
Метод обратного вызова, который прослушивает событие beforeFind в связанной таблице. Он изменяет переданный запрос, жадно загружая переведенные поля и добавляя форматировщик для копирования значений в записи основной таблицы.
Параметры
-
Cake\Event\Event$event - Событие beforeFind, которое было запущено.
-
Cake\ORM\Query$query - Запрос
- ArrayObject
$options - Параметры для запроса
beforeSaveисточник public
beforeSave( Cake\Event\Event $event , Cake\Datasource\EntityInterface $entity , ArrayObject $options )
Изменяет сущность перед сохранением, чтобы переведенные поля тоже сохранились в базе данных.
Параметры
-
Cake\Event\Event$event - Событие beforeSave, которое было запущено
-
Cake\Datasource\EntityInterface$entity - Сущность, которая будет сохранена
- ArrayObject
$options - параметры, переданные методу сохранения
findTranslationsисточник public
findTranslations( Cake\ORM\Query $query , array $options )
Пользовательский метод поиска, используемый для извлечения всех переводов для найденных записей. Извлеченные переводы можно фильтровать по языку, передав ключ locales в массиве параметров.
Переведенные значения будут найдены для каждой сущности в свойстве _translations, содержащем массив, индексированный именем языка.
Пример:
$article = $articles->find('translations', ['locales' => ['eng', 'deu'])->first(); $englishTranslatedFields = $article->get('_translations')['eng'];
Если массив locales не передан, он будет возвращать все переводы, найденные для каждой записи.
Параметры
-
Cake\ORM\Query$query - Исходный запрос для изменения
- массив
$options - Параметры
Возвращает
Cake\ORM\Query\Cake\ORM\Query
groupTranslationsисточник public
groupTranslations( Cake\Datasource\ResultSetInterface $results )
Изменяет результаты поиска в таблице, чтобы объединить полные записи переводов в каждую сущность под ключом _translations.
Параметры
-
Cake\Datasource\ResultSetInterface$results - Результаты для изменения.
Возвращает
Cake\Collection\Collection\Cake\Collection\Collection
initializeисточник public
initialize( array $config )
Обработчик инициализации
Параметры
- массив
$config - Настройка для этого поведения.
Переопределяет
Cake\ORM\Behavior::initialize() localeисточник public
locale( string|null $locale null )
Устанавливает все будущие запросы для связанной таблицы для извлечения переведенных полей для переданного языка. Если значение не указано, возвращает текущий язык
Параметры
- строка|null
$localeнеобязательный null - Язык для извлечения переведенных записей
Возвращает
stringстрока
setupFieldAssociationsисточник public
setupFieldAssociations( array $fields , string $table , string $model , string $strategy )
Создаёт связи между связанной таблицей и каждым полем, переданным в этот метод.
Дополнительно создаёт отношение i18n HasMany, которое будет использоваться для извлечения всех переводов для каждой записи в связанной таблице.
Параметры
- массив
$fields - список полей для создания связей
- строка
$table - имя таблицы для хранения каждого перевода поля
- строка
$model - значение поля модели
- строка
$strategy - стратегия, используемая в ассоциации _i18n
Методы унаследованные от Cake\ORM\Behavior
_reflectionCachesource protected
_reflectionCache( )
Получает методы, реализованные этим поведением
Использует метод implementedEvents() для исключения методов обратного вызова. Методы, начинающиеся с _ будут проигнорированы, как и методы, объявленные в Cake\ORM\Behavior
Возвращает
arrayмассив
_resolveMethodAliasessource protected
_resolveMethodAliases( string $key , array $defaults , array $config )
Удаляет алиасированные методы, которые в противном случае были бы дублированы конфигурацией пользовательского интерфейса.
Параметры
- строка
$key - Ключ для фильтрации.
- массив
$defaults - Стандартные отображения методов.
- массив
$config - Настроенные отображения методов.
Возвращает
arrayСписок конфигурационных данных без дубликатов.
implementedEventssource public
implementedEvents( )
Получает обратные вызовы модели, к которым это поведение проявляет интерес.
Определение одного из методов обратного вызова предполагает, что поведение заинтересовано в соответствующем событии.
Переопределите этот метод, если вам нужно добавить нестандартные обработчики событий. Или если вы хотите, чтобы ваше поведение прослушивало нестандартные события.
Возвращает
arrayмассив
Реализация
Cake\Event\EventListenerInterface::implementedEvents() implementedFinderssource public
implementedFinders( )
implementedFinders
Предоставляет отображение алиас->имя_метода для наборов методов, реализованных поведением. Пример:
[ 'this' => 'findThis', 'alias' => 'findMethodName' ]
С приведенным примером вызов $Table->find('this') вызовет $Behavior->findThis(), а вызов $Table->find('alias') вызовет $Behavior->findMethodName()
Рекомендуется, хотя и не обязательно, определять implementedFinders в свойстве config дочерних классов, чтобы не было необходимости использовать рефлексию для получения списка доступных методов. Смотрите примеры в стандартных поведениях
Возвращает
arrayмассив
implementedMethodssource public
implementedMethods( )
implementedMethods
Предоставляет отображение алиас->имя_метода для наборов методов, реализованных поведением. Пример:
[ 'method' => 'method', 'aliasedmethod' => 'somethingElse' ]
С приведенным примером вызов $Table->method() вызовет $Behavior->method(), а вызов $Table->aliasedmethod() вызовет $Behavior->somethingElse()
Рекомендуется, хотя и не обязательно, определять implementedFinders в свойстве config дочерних классов, чтобы не было необходимости использовать рефлексию для получения списка доступных методов. Смотрите примеры в стандартных поведениях
Возвращает
arrayмассив
verifyConfigsource public
verifyConfig( )
verifyConfig
Проверяет, что реализованные ключи содержат значения, указывающие на вызываемые элементы.
Выбрасывает
Cake\Core\Exception\Exceptionесли конфигурация некорректна
Методы, используемые из Cake\ORM\Locator\LocatorAwareTrait
tableLocatorsource public
tableLocator( Cake\ORM\Locator\LocatorInterface $tableLocator null )
Устанавливает локатор таблицы. Если параметры не переданы, возвращает текущий используемый локатор.
Параметры
-
Cake\ORM\Locator\LocatorInterface$tableLocatorнеобязательно null - Экземпляр LocatorInterface.
Возвращает
Cake\ORM\Locator\LocatorInterface\Cake\ORM\Locator\LocatorInterface
Методы, используемые из Cake\Core\InstanceConfigTrait
_configDeletesource protected
_configDelete( string $key )
Удаляет один конфигурационный ключ
Параметры
- строка
$key - Ключ для удаления.
Выбрасывает
Cake\Core\Exception\Exceptionесли происходит попытка перезаписи существующей конфигурации
_configReadsource protected
_configRead( string|null $key )
Считывание конфигурационной переменной
Параметры
- строка|null
$key - Ключ для чтения.
Возвращает
mixedразнообразное
_configWritesource protected
_configWrite( string|array $key , mixed $value , boolean|string $merge false )
Запись конфигурационной переменной
Параметры
- строка|массив
$key - Ключ для записи.
- разнообразие
$value - Значение для записи.
- логическое значение|строка
$mergeнеобязательно false - True для рекурсивного объединения, 'shallow' для простого объединения, false для перезаписи, по умолчанию false.
Выбрасывает
Cake\Core\Exception\Exceptionесли происходит попытка перезаписи существующей конфигурации
configsource public
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']);
Параметры
- строка|массив|null
$keyнеобязательно null - Ключ для получения/установки или весь массив конфигураций.
- разнообразие|null
$valueнеобязательно null - Значение для установки.
- логическое значение
$mergeнеобязательно true - Рекурсивное объединение или перезапись существующей конфигурации, по умолчанию true.
Возвращает
mixedЗначение конфигурации, которое считывается, или сам объект при операциях записи.
Выбрасывает
Cake\Core\Exception\ExceptionПри попытке установить недействительный ключ.
configShallowsource public
configShallow( string|array $key , mixed|null $value null )
Объединяет предоставленную конфигурацию с существующей конфигурацией. В отличие от config(), которая выполняет рекурсивное объединение для вложенных ключей, этот метод выполняет простое объединение.
Установка определенного значения:
$this->config('key', $value);
Установка вложенного значения:
$this->config('some.nested.key', $value);
Обновление нескольких конфигурационных параметров одновременно:
$this->config(['one' => 'value', 'another' => 'value']);
Параметры
- строка|массив
$key - Ключ для установки или весь массив конфигураций.
- разнообразие|null
$valueнеобязательно null - Значение для установки.
Возвращает
mixedСам объект.
Сводка свойств
Свойства, унаследованные от Cake\ORM\Behavior
$_reflectionCachesource
protected static массив
Кэш отражения методов для поведений.
Хранит отражённые методы + методы поиска по классам. Это предотвращает многократное отражение одного и того же класса в одном процессе.
[]
Свойства, используемые из Cake\Core\InstanceConfigTrait
$_configInitializedsource
protected логическое значение
Указывает, была ли конфигурация уже настроена значениями по умолчанию
false Свойства, используемые из Cake\ORM\Locator\LocatorAwareTrait
© 2005–2016 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.
http://api.cakephp.org/3.1/class-Cake.ORM.Behavior.TranslateBehavior.html