Что делать, если надо получить часть конфига приложения в коде?

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
lgXenos
Сообщения: 243
Зарегистрирован: 2015.11.30, 15:42

Что делать, если надо получить часть конфига приложения в коде?

Сообщение lgXenos »

Доброго
Не первый раз сталкиваюсь с тем, что посреди кода мне требуется, по хорошему, получить какую-то часть конфига

Например когда мы работаем со Swift-mailer, то при указании отправителя надо указать именно тот логин, с которым логинится backend из конфига
Второй пример - сейчас добавляю TNTSearch в свой проект. Он просит указать базу, с которой он будет работать. И логично, что у меня это уже было указано в конфиге, и хардкод в компоненте - вроде бы как совсем плохо

Как решаются подобные ситуации? Через файл params.php, а потом страшненькие конструкции в классах?
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Что делать, если надо получить часть конфига приложения в коде?

Сообщение samdark »

Через params.php и юзание его в основном конфиге.
lgXenos
Сообщения: 243
Зарегистрирован: 2015.11.30, 15:42

Re: Что делать, если надо получить часть конфига приложения в коде?

Сообщение lgXenos »

Ага... Значит я на верном пути...
Спасибо
lgXenos
Сообщения: 243
Зарегистрирован: 2015.11.30, 15:42

Re: Что делать, если надо получить часть конфига приложения в коде?

Сообщение lgXenos »

Как можно извлечь информацию из dsn-строчки?
Мое решение меня пугает....

Код: Выделить всё

// 'dsn' => 'mysql:host=localhost;dbname=klinika',
$dbName = array_pop(explode(';', Yii::$app->params['db']['dsn']));
$dbName = array_pop(explode('=', $dbName));
Ответить