Spec-Zone.ru › Yii 2.0

Класс yii\i18n\DbMessageSource

Все классы | Свойства | Методы | События | Константы
Наследование yii\i18n\DbMessageSource » yii\i18n\MessageSource » yii\base\Component » yii\base\Object
Реализует yii\base\Configurable
Доступно с версии 2.0
Исходный код https://github.com/yiisoft/yii2/blob/master/framework/i18n/DbMessageSource.php

DbMessageSource расширяет yii\i18n\MessageSource и представляет собой источник сообщений, хранящий переведённые сообщения в базе данных.

База данных должна содержать следующие две таблицы: source_message и message.

Таблица source_message хранит сообщения, которые нужно перевести, а таблица message хранит переведённые сообщения. Имя этих двух таблиц можно настроить, задав $sourceMessageTable и $messageTable соответственно.

Подключение к базе данных задаётся свойством $db. Схема базы данных может быть инициализирована путём применения миграции:

yii migrate --migrationPath=@yii/i18n/migrations/

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

Общедоступные свойства

Свойство Тип Описание Определено в
$behaviors yii\base\Behavior[] Список присоединённых к этому компоненту поведений yii\base\Component
$cache yii\caching\CacheInterface|массив|строка Объект кэша или идентификатор компонента приложения для объекта кэша. yii\i18n\DbMessageSource
$cachingDuration целое число Время в секундах, в течение которого сообщения могут оставаться валидными в кэше. yii\i18n\DbMessageSource
$db yii\db\Connection|массив|строка Объект подключения к БД или идентификатор компонента приложения для подключения к БД. yii\i18n\DbMessageSource
$enableCaching логическое Включить ли кэширование переведённых сообщений yii\i18n\DbMessageSource
$forceTranslation логическое Принудительно ли переводить сообщения, когда исходный и целевой языки одинаковы. yii\i18n\MessageSource
$messageTable строка Имя таблицы переведённых сообщений. yii\i18n\DbMessageSource
$sourceLanguage строка Язык, на котором написаны исходные сообщения. yii\i18n\MessageSource
$sourceMessageTable строка Имя таблицы исходных сообщений. yii\i18n\DbMessageSource

Общедоступные методы

Метод Описание Определено в
__call() Вызывает именованный метод, который не является методом класса. yii\base\Component
__clone() Этот метод вызывается после создания объекта путём клонирования существующего. yii\base\Component
__construct() Конструктор. yii\base\Object
__get() Возвращает значение свойства компонента. yii\base\Component
__isset() Проверяет, установлено ли свойство, т. е. определено и не равно null. yii\base\Component
__set() Устанавливает значение свойства компонента. yii\base\Component
__unset() Устанавливает свойство компонента в значение null. yii\base\Component
attachBehavior() Присоединяет поведение к этому компоненту. yii\base\Component
attachBehaviors() Присоединяет список поведений к компоненту. yii\base\Component
behaviors() Возвращает список поведений, по которым должен вести себя этот компонент. yii\base\Component
canGetProperty() Возвращает значение, указывающее, можно ли прочитать свойство. yii\base\Component
canSetProperty() Возвращает значение, указывающее, можно ли установить свойство. yii\base\Component
className() Возвращает полное имя этого класса. yii\base\Object
detachBehavior() Отсоединяет поведение от компонента. yii\base\Component
detachBehaviors() Отсоединяет все поведения от компонента. yii\base\Component
ensureBehaviors() Убеждается, что поведения, объявленные в behaviors(), присоединены к этому компоненту. yii\base\Component
getBehavior() Возвращает объект именованного поведения. yii\base\Component
getBehaviors() Возвращает все присоединённые к этому компоненту поведения. yii\base\Component
hasEventHandlers() Возвращает значение, указывающее, есть ли обработчик, прикреплённый к указанному событию. yii\base\Component
hasMethod() Возвращает значение, указывающее, определён ли метод. yii\base\Component
hasProperty() Возвращает значение, указывающее, определено ли свойство для этого компонента. yii\base\Component
init() Инициализирует компонент DbMessageSource. yii\i18n\DbMessageSource
off() Отсоединяет существующий обработчик событий от этого компонента. yii\base\Component
on() Присоединяет обработчик событий к событию. yii\base\Component
translate() Переводит сообщение на указанный язык. yii\i18n\MessageSource
trigger() Вызывает событие. yii\base\Component

Защищённые методы

Метод Описание Определено в
createFallbackQuery() Метод создаёт объект yii\db\Query для поиска сообщений на языке по умолчанию. yii\i18n\DbMessageSource
loadMessages() Загружает перевод сообщений для указанного языка и категории. yii\i18n\DbMessageSource
loadMessagesFromDb() Загружает сообщения из базы данных. yii\i18n\DbMessageSource
translateMessage() Переводит указанное сообщение. yii\i18n\MessageSource

События

Событие Тип Описание Определено в
EVENT_MISSING_TRANSLATION yii\i18n\MissingTranslationEvent Событие, которое срабатывает, когда перевод сообщения не найден. yii\i18n\MessageSource

Константы

Константа Значение Описание Определено в
CACHE_KEY_PREFIX 'DbMessageSource' Префикс, который используется при генерации ключа кэша. Устарело. Эта константа никогда не использовалась и будет удалена в версии 2.1.0. yii\i18n\DbMessageSource

Подробности свойств

$cache общедоступное свойство

Объект кэша или идентификатор компонента приложения для объекта кэша. Данные сообщений будут кэшироваться с помощью этого объекта кэша. Обратите внимание, что для включения кэширования необходимо установить $enableCaching в true, в противном случае установка этого свойства не имеет эффекта.

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

Начиная с версии 2.0.2, это также может быть массив конфигурации для создания объекта.

См. также:

  • $cachingDuration
  • $enableCaching
public yii\caching\CacheInterface|array|string $cache = 'cache'

$cachingDuration общедоступное свойство

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

См. также $enableCaching.

public integer $cachingDuration = 0

$db общедоступное свойство

Объект подключения к БД или идентификатор компонента приложения для подключения к БД.

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

Начиная с версии 2.0.2, это также может быть массив конфигурации для создания объекта.

public yii\db\Connection|array|string $db = 'db'

$enableCaching общедоступное свойство

Включить кэширование переведённых сообщений

public boolean $enableCaching = false

$messageTable общедоступное свойство

Имя таблицы переведённых сообщений.

public string $messageTable = '{{%message}}'

$sourceMessageTable общедоступное свойство

Имя таблицы исходных сообщений.

public string $sourceMessageTable = '{{%source_message}}'

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

createFallbackQuery() защищённый метод (доступен начиная с версии 2.0.7)

Метод создаёт объект yii\db\Query для поиска сообщений на языке по умолчанию.

Обычно вызывается из loadMessagesFromDb().

См. также loadMessagesFromDb().

защищённый yii\db\Query createFallbackQuery ( $category, $language, $fallbackLanguage )
$category string

Категория сообщения

$language string

Изначально запрошенный язык

$fallbackLanguage string

Целевой язык по умолчанию

init() общедоступный метод

Инициализирует компонент DbMessageSource.

Этот метод инициализирует свойство $db, чтобы убедиться, что оно ссылается на валидное подключение к БД. Также будет инициализирован настроенный компонент $cache.

общедоступный void init ( )
throws yii\base\InvalidConfigException

если $db недействителен или $cache недействителен.

loadMessages() защищённый метод

Загружает перевод сообщений для указанного языка и категории.

Если перевод для конкретного кода языка, например, en-US, не найден, то он пытается найти более общий en.

защищённый array loadMessages ( $category, $language )
$category string

Категория сообщения

$language string

Целевой язык

return array

Загруженные сообщения. Ключи — исходные сообщения, значения — переведённые сообщения.

loadMessagesFromDb() защищённый метод

Загружает сообщения из базы данных.

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

защищённый array loadMessagesFromDb ( $category, $language )
$category string

Категория сообщения.

$language string

Целевой язык.

return array

Сообщения, загруженные из базы данных.

© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-i18n-dbmessagesource.html

Spec-Zone.ru

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