@kolya_krut

Как задать сообщения компонента Yii2?

Здравствуйте.

Некий компонент для Yii2, который устанавливается через Composer.
Как правильно сконфигурировать код компонета, чтобы у компонента были свои сообщения (об ошибках и просто сообщения) и при этом после установки его через composer в приложение сообщения можно было переопределять?
Какие настройки должны быть в приложении для такого случая?

Пример. Допустим, сообщения компонента располагаются в директории vendor/package/src/messages. Где-то в коде компонента вызывается сообщение:
throw new \ErrorException(\Yii:t('component', 'absolutely_peace_death'));

Если существует файл сообщений в приложении (@app/messages или еще где), то читать сообщение оттуда. Иначе читать из файла компонента (vendor/package/src/messages).
  • Вопрос задан
  • 182 просмотра
Пригласить эксперта
Ответы на вопрос 3
za4me
@za4me
Человек
Если существует файл

Скинуть стандартную функцию php которая проверяет файл на существование? :)
Ответ написан
kawabanga
@kawabanga
Дак, создаете класс-наследник в app/components. и вызываете его. в нем творите любую свою магию.
Ответ написан
Комментировать
@kolya_krut Автор вопроса
магия - это плохо) она непонятно как работает) надо, чтобы было максимально прозрачно

для себя нашел такое решение (мало ли, мож кому пригодится), которое вроде не нарушает поведение фреймворка:
  • при инициализации компонент добавляет директорию со своими сообщениями в Yii::$app->getI18n()->translations
  • компонет устанавливается через composer и читает сообщения из своей директории
  • приложение может переопределить директорию через свой web.php/main.php

работает через обычное поведение "юишной" Y::t() без всяких лишних стандартных функций
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы