Spec-Zone.ru › CakePHP 3.2

Класс TranslateBehavior

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

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

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

Cake\ORM\Behavior implements Cake\Event\EventListenerInterface uses Cake\Core\InstanceConfigTrait
Extended by Cake\ORM\Behavior\TranslateBehavior uses Cake\ORM\Locator\LocatorAwareTrait
Пространство имен: Cake\ORM\Behavior
Расположение: ORM/Behavior/TranslateBehavior.php

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

  • $_defaultConfig protected
    array
    Конфигурация по умолчанию
  • $_locale protected
    string

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

  • $_table protected
    Cake\ORM\Table
    Экземпляр таблицы
  • $_translationTable protected
    Cake\ORM\Table
    Экземпляр таблицы, ответственный за перевод

Наследованные свойства

  • _reflectionCache _config, _configInitialized _tableLocator

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

  • __construct() public
    Конструктор
  • _bundleTranslatedFields() protected

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

  • _findExistingTranslations() protected

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

  • _referenceName() protected
    Определение имени ссылки для использования в данной таблице
  • _rowMapper() protected

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

  • afterSave() public
    Удаляет временное свойство _i18n после сохранения сущности
  • beforeFind() public

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

  • beforeSave() public

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

  • findTranslations() public

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

  • groupTranslations() public

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

  • initialize() public
    Метод инициализации
  • locale() public

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

  • setupFieldAssociations() public

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

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

__construct()source public

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

Конструктор

Параметры

Cake\ORM\Table $table
Таблица, к которой прикреплено это поведение.
массив $config необязательно []
Конфигурация для этого поведения.

Переопределяет

Cake\ORM\Behavior::__construct()

_bundleTranslatedFields()source protected

_bundleTranslatedFields( Cake\Datasource\EntityInterface $entity )

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

Параметры

Cake\Datasource\EntityInterface $entity
Сущность

_findExistingTranslations()source protected

_findExistingTranslations( array $ruleSet )

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

Параметры

массив $ruleSet
массив массивов условий, используемых для поиска каждого

Возвращает

массив

_referenceName()source protected

_referenceName( Cake\ORM\Table $table )

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

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

Параметры

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

Возвращает

строка

_rowMapper()source protected

_rowMapper( Cake\Datasource\ResultSetInterface $results , string $locale )

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

Параметры

Cake\Datasource\ResultSetInterface $results
Результаты для отображения.
строка $locale
Строка локале

Возвращает

Cake\Collection\Collection

afterSave()source public

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

Удаляет временное свойство _i18n после сохранения сущности

Параметры

Cake\Event\Event $event
Событие beforeSave, которое было вызвано
Cake\Datasource\EntityInterface $entity
Сущность, которая будет сохранена

beforeFind()source public

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

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

Параметры

Cake\Event\Event $event
Событие beforeFind, которое было вызвано.
Cake\ORM\Query $query
Запрос
ArrayObject $options
Опции для запроса
END_OF_DOCUMENT_MARKER

beforeSave()source public

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

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

Параметры

Cake\Event\Event $event
Событие beforeSave, которое было вызвано
Cake\Datasource\EntityInterface $entity
Сущность, которая будет сохранена
ArrayObject $options
Опции, переданные методу сохранения

findTranslations()source 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
Исходный запрос для изменения
array $options
Опции

Возвращает

Cake\ORM\Query

groupTranslations()source public

groupTranslations( Cake\Datasource\ResultSetInterface $results )

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

Параметры

Cake\Datasource\ResultSetInterface $results
Результаты для изменения.

Возвращает

Cake\Collection\Collection

initialize()source public

initialize( array $config )

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

Параметры

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

Переопределяет

Cake\ORM\Behavior::initialize()

locale()source public

locale( string|null $locale null )

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

Параметры

string|null $locale опционально null
Локаль для загрузки переведенных записей

Возвращает

string

setupFieldAssociations()source public

setupFieldAssociations( array $fields , string $table , string $model , string $strategy )

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

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

Параметры

array $fields
Список полей для создания ассоциаций
string $table
Имя таблицы для хранения перевода каждого поля
string $model
Значение поля модели
string $strategy
Стратегия, используемая в ассоциации _i18n

Методы, унаследованные от Cake\ORM\Behavior

_reflectionCache()source protected

_reflectionCache( )

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

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

Возвращает

array

_resolveMethodAliases()source protected

_resolveMethodAliases( string $key , array $defaults , array $config )

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

Параметры

string $key
Ключ для фильтрации.
array $defaults
Стандартные соответствия методов.
array $config
Настраиваемые соответствия методов.

Возвращает

array
Дедублированный список данных конфигурации.

implementedEvents()source public

implementedEvents( )

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

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

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

Возвращает

array

Реализация

Cake\Event\EventListenerInterface::implementedEvents()

implementedFinders()source public

implementedFinders( )

implementedFinders

Предоставляет соответствие «алиас» -> «имя_метода» реализованных методов поиска. Пример:

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

С вышеуказанным примером, вызов $Table->find('this') вызовет $Behavior->findThis(), а вызов $Table->find('alias') вызовет $Behavior->findMethodName()

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

Возвращает

array

implementedMethods()source public

implementedMethods( )

implementedMethods

Предоставляет соответствие «алиас» -> «имя_метода» реализованных методов. Пример:

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

С вышеуказанным примером, вызов $Table->method() вызовет $Behavior->method(), а вызов $Table->aliasedmethod() вызовет $Behavior->somethingElse()

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

Возвращает

array

verifyConfig()source public

verifyConfig( )

verifyConfig

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

Выбрасывает

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

Методы, используемые из Cake\ORM\Locator\LocatorAwareTrait

tableLocator()source public

tableLocator( Cake\ORM\Locator\LocatorInterface $tableLocator null )

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

Параметры

Cake\ORM\Locator\LocatorInterface $tableLocator опционально null
Экземпляр LocatorInterface.

Возвращает

Cake\ORM\Locator\LocatorInterface

Методы, используемые из 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
END_OF_DOCUMENT_MARKER

_configWrite()source protected

_configWrite( string|array $key , mixed $value , boolean|string $merge false )

Записать переменную конфигурации

Параметры

строка|массив $key
Ключ для записи.
смешанное $value
Значение для записи.
булево|строка $merge необязательно false

Истинно для рекурсивного слияния, «поверхностное» для простого слияния, ложно для перезаписи, по умолчанию ложно.

Исключения

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

config()source 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
Рекурсивное слияние или перезапись существующей конфигурации, по умолчанию истинно.

Возвращаемое значение

смешанное
Значение конфигурации, которое читается, или сам объект при операциях записи.

Исключения

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

configShallow()source 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
Значение для установки.

Возвращаемое значение


$this Сам объект.

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

$_defaultConfigsource

protected массив

Значения конфигурации по умолчанию

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

[
    'implementedFinders' => ['translations' => 'findTranslations'],
    'implementedMethods' => ['locale' => 'locale'],
    'fields' => [],
    'translationTable' => 'I18n',
    'defaultLocale' => '',
    'referenceName' => '',
    'allowEmptyTranslations' => true,
    'onlyTranslated' => false,
    'strategy' => 'subquery',
    'tableLocator' => null
]

$_localesource

protected строка

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

$_tablesource

protected Cake\ORM\Table

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

$_translationTablesource

protected Cake\ORM\Table

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

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

Spec-Zone.ru

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