Класс 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, это также может быть массив конфигурации для создания объекта.
См. также:
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 | |
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