Answer the question
In order to leave comments, you need to log in
How to display data from the database in yii2 in config?
Hello
Can you please tell me how to display data from the database in the application config?
I need for sms module (smsc) - to send password with login.
It is not convenient to constantly climb into the config, the task is to change on the fly.
Alas, I didn’t understand how to do it :(
I would be grateful for the help
The config itself:
<?php
$params = require __DIR__ . '/params.php';
$db = require __DIR__ . '/db.php';
Yii::setAlias('@images', dirname(__DIR__) . '/web/uploads');
$config = [
'id' => 'basic',
'basePath' => dirname(__DIR__),
'bootstrap' => ['log' , 'config'],
'name' => 'CRM',
'language' => 'ru-RU',
'sourceLanguage' =>'ru-RU',
'aliases' => [
'@bower' => '@vendor/bower-asset',
'@npm' => '@vendor/npm-asset',
],
'components' => [
'assetManager' => [
'linkAssets' => true,
'appendTimestamp' => true,
],
'SMSCenter' => [
'class' => 'integready\smsc\SMSCenter',
'login' => '',
'password' => '',
'useSSL' => false,
'options' => [
'sender' => '', // имя отправителя
// 'hlr' => 1,
// 'translit', // кодировать ли сообщения в транслит (self::TRANSLIT_NONE)
// 'charset', // кодировка запроса и ответа (self::CHARSET_UTF8)
// 'fmt', // формат ответа сервера (self::FMT_JSON)
// 'type', // тип сообщения (self::MSG_SMS), замена push, ping, hlr и прочих
// 'cost', // запрашивать ли стоимость (self::COST_NO)
// 'time', // время отправки сообщения (null)
// 'tz', // часовой пояс параметра time (null)
],
],
'config' => [ // сам компонент прописываем
'class' => 'app\components\Config',
],
'view' => [
'theme' => [
'pathMap' => [
'@app/views' => '@app/views/client/yii2-app'//'@vendor/dmstr/yii2-adminlte-asset/example-views/testing/app' //
],
],
],
'request' => [
// !!! insert a secret key in the following (if it is empty) - this is required by cookie validation
'cookieValidationKey' => 'nfnnfnbhfibhdFdccwed^87e8xscscdcfeegtb',
'baseUrl'=> '',
],
'cache' => [
'class' => 'yii\caching\FileCache',
],
'user' => [
//'class' => 'dektrium\user\Module',
'identityClass' => 'app\models\User',
'enableAutoLogin' => true,
],
'authManager' => [
'class' => 'yii\rbac\DbManager',
'cache' => 'cache' //Включаем кеширование
],
'errorHandler' => [
'errorAction' => 'site/error',
],
'formatter' => [
'class' => 'yii\i18n\Formatter',
'defaultTimeZone' => 'Europe/Moscow',
],
'mailer' => [
'class' => 'yii\swiftmailer\Mailer',
// send all mails to a file by default. You have to set
// 'useFileTransport' to false and configure a transport
// for the mailer to send real emails.
'useFileTransport' => false,
'transport' => [
'class' => 'Swift_SmtpTransport',
'host' => 'smtp.yandex.ru',
'username' => '[email protected]',
'password' => '',
'port' => '465',
'encryption' => 'ssl',
],
],
'log' => [
'traceLevel' => YII_DEBUG ? 3 : 0,
'targets' => [
[
'class' => 'yii\log\FileTarget',
'levels' => ['error', 'warning'],
],
],
],
'db' => $db,
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [
['pattern' => 'yandex-market', 'route' => 'YandexMarketYml/default/index', 'suffix' => '.yml'],
],
],
/**
* Компонент принимает и управляет логами
*/
'activityLogger' => [
'class' => \lav45\activityLogger\Manager::class,
// Включаем логирование для PROD версии
'enabled' => YII_ENV_DEV,
// при вызове метода `clean()` будут удалены все данные добавленные 365 дней назад
'deleteOldThanDays' => 365,
// идентификатор компонента `\yii\web\User`
'user' => 'user',
// Поле для отображения имени из модели пользователя
'userNameAttribute' => 'username',
// идентификатор компонента хранилища логов `\lav45\activityLogger\StorageInterface`
'storage' => 'activityLoggerStorage',
'messageClass' => [
'class' => \lav45\activityLogger\LogMessage::class,
// При использовании компанета когда пользователь ещё не авторизировался его действия
// можно записывать от имени "Неизвесный пользователь", к примеру.
'userId' => 'cron',
'userName' => 'Неизвесный пользователь',
// Окружение из которого проиводило действие
'env' => 'console',
// Так же можно указать значение по умолчанию и для других параметров
// 'entityId' => '...',
// 'createdAt' => time(),
// 'action' => '...',
// 'data' => [" ... "],
],
],
/**
* Компонент принимает и управляет логами
*/
'activityLoggerStorage' => [
'class' => \lav45\activityLogger\DbStorage::class,
// Имя таблицы в которой будут хранится логи
'tableName' => '{{%activity_log}}',
// идентификатор компонента `\yii\db\Connection`
'db' => 'db',
]
],
'modules' => [
'dynagrid'=> ['class'=>'\kartik\dynagrid\Module'],
'datecontrol' => [
'class' => '\kartik\datecontrol\Module'
],
'gridview' => ['class' => 'kartik\grid\Module'],
'logger' => [
'class' => \lav45\activityLogger\modules\Module::class,
// Список моделей которые логировались
'entityMap' => [
'user' => 'app\models\User',
],
]
//
//
],
'params' => $params,
];
if (YII_ENV_DEV) {
// configuration adjustments for 'dev' environment
$config['bootstrap'][] = 'debug';
$config['modules']['debug'] = [
'class' => 'yii\debug\Module',
// uncomment the following to add your IP if you are not connecting from localhost.
'allowedIPs' => ['127.0.0.1', '79.126.56.121','::1'],
];
$config['bootstrap'][] = 'gii';
$config['modules']['gii'] = [
'class' => 'yii\gii\Module',
// uncomment the following to add your IP if you are not connecting from localhost.
'allowedIPs' => ['127.0.0.1', '79.126.56.121', '::1'],
];
}
return $config;
Answer the question
In order to leave comments, you need to log in
'SMSCenter' => function(){
return Yii::$app->createObject( [
'class' => 'integready\smsc\SMSCenter',
'login' => '',
'password' => '',
'useSSL' => false,
'options' => [
],
]);
}
'login' => Yii::$app->settings->get('password),
'components' => [
'settings' => [
// настройки компонента
]
]
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question