Spec-Zone.ru › CakePHP 3.1

Класс TranslateBehavior

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

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

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

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

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

__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
Сам объект.

Сводка свойств

$_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

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

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

$_reflectionCachesource

protected static массив

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

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

[]

Свойства, используемые из Cake\Core\InstanceConfigTrait

$_configsource

protected массив

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

[]

$_configInitializedsource

protected логическое значение

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

false

Свойства, используемые из Cake\ORM\Locator\LocatorAwareTrait

$_tableLocatorsource

protected Cake\ORM\Locator\LocatorInterface

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

© 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

Spec-Zone.ru

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