getenv('PORTAL_NAME'), 'vendorPath' => dirname(dirname(__DIR__)) . '/vendor', 'extensions' => require(__DIR__ . '/../../vendor/yiisoft/extensions.php'), 'language' => 'ru', 'aliases' => [ '@bower' => '@vendor/bower-asset', '@npm' => '@vendor/npm-asset', ], 'bootstrap' => ['log', 'podium', 'headers', DependencyInjector::class], 'modules' => [ 'podium' => ['class' => Podium::class], 'pdfjs' => ['class' => Module::class], ], 'components' => [ 'authManager' => [ 'class' => AuthManager::class, 'itemTable' => '{{%rbac_auth_item}}', 'itemChildTable' => '{{%rbac_auth_item_child}}', 'assignmentTable' => '{{%rbac_auth_assignment}}', 'ruleTable' => '{{%rbac_auth_rule}}' ], 'session' => [ 'class' => Session::class, 'name' => 'LKSESSID', 'cookieParams' => [ 'httpOnly' => true, 'secure' => SecureUrlManager::isHttpsEnabled() ] ], 'cache' => function (): CacheInterface { $cache_factory = new PortalCacheFactory(); return $cache_factory->createCache(); }, 'commandBus' => [ 'class' => \trntv\tactician\Tactician::class, 'commandNameExtractor' => '\League\Tactician\Handler\CommandNameExtractor\ClassNameExtractor', 'methodNameInflector' => '\League\Tactician\Handler\MethodNameInflector\HandleInflector', 'commandToHandlerMap' => [ 'common\commands\command\SendEmailCommand' => '\common\commands\handler\SendEmailHandler', 'common\commands\command\AddToTimelineCommand' => '\common\commands\handler\AddToTimelineHandler', ] ], 'formatter' => [ 'class' => 'yii\i18n\Formatter' ], 'glide' => [ 'class' => \trntv\glide\components\Glide::class, 'sourcePath' => '@storage/web/source', 'cachePath' => '@storage/cache', 'urlManager' => 'urlManagerStorage', 'maxImageSize' => '4000000', 'signKey' => 'g4DopBf81M6vOi45bJalkXTumDg0rwph' ], 'mailer' => [ 'class' => \yii\swiftmailer\Mailer::class, 'htmlLayout' => '@common/mail/layouts/html', 'textLayout' => '@common/mail/layouts/text', 'useFileTransport' => false, 'messageConfig' => [ 'charset' => 'UTF-8', 'from' => [getenv('FROM_EMAIL') => getenv('PORTAL_NAME')] ], 'transport' => [ 'class' => 'Swift_SmtpTransport', 'host' => getenv('MAIL_HOST'), 'username' => getenv('MAIL_USERNAME'), 'password' => getenv('MAIL_PASSWORD'), 'port' => getenv('MAIL_PORT'), 'encryption' => strlen(getenv('MAIL_PROTOCOL')) > 0 ? getenv('MAIL_PROTOCOL') : null, ], ], 'db' => [ 'class' => Connection::class, 'dsn' => getenv('DB_DSN'), 'username' => getenv('DB_USERNAME'), 'password' => getenv('DB_PASSWORD'), 'tablePrefix' => getenv('DB_TABLE_PREFIX'), 'charset' => 'utf8', 'enableSchemaCache' => YII_ENV_PROD, 'schemaMap' => [ 'pgsql' => [ 'class' => \yii\db\pgsql\Schema::class, 'defaultSchema' => 'public' ], 'mysql' => [ 'class' => \yii\db\mysql\Schema::class, ] ], ], 'log' => [ 'traceLevel' => 3, 'flushInterval' => 1, 'targets' => [ 'db_info' => [ 'class' => PortalDbTarget::class, 'levels' => ['info'], 'categories' => ['info'], 'except' => ['yii\debug\Module*'], 'prefix' => function () { return LogSettingsProvider::infoLogPrefix(); }, 'logVars' => [], 'logTable' => '{{%system_log_info}}', 'maskVars' => \common\models\logs\LogVarsExcluder::excludeVars() ], 'db' => [ 'class' => PortalDbTarget::class, 'levels' => ['error', 'warning'], 'except' => ['yii\web\HttpException:*', 'yii\i18n\I18N\*', 'yii\debug\Module*'], 'prefix' => function () { return LogSettingsProvider::systemLogPrefixForDb(); }, 'logVars' => [], 'logTable' => '{{%system_log}}', 'maskVars' => \common\models\logs\LogVarsExcluder::excludeVars() ], 'file_info' => [ 'class' => FileTarget::class, 'levels' => ['info'], 'categories' => ['info'], 'except' => ['yii\debug\Module*'], 'prefix' => function () { return LogSettingsProvider::infoLogPrefix(); }, 'logVars' => [], 'logFile' => '@common/runtime/logs/yii_info.log', 'maxFileSize' => 1024, 'maxLogFiles' => 10000, 'exportInterval' => 10, 'maskVars' => \common\models\logs\LogVarsExcluder::excludeVars() ], 'file' => [ 'class' => FileTarget::class, 'levels' => ['error', 'warning'], 'except' => ['yii\web\HttpException:*', 'yii\i18n\I18N\*', 'yii\debug\Module*'], 'prefix' => function () { return LogSettingsProvider::systemLogPrefixForFile(); }, 'logFile' => '@common/runtime/logs/yii.log', 'maxFileSize' => 1024 * 2, 'maxLogFiles' => 20, 'exportInterval' => 10, 'maskVars' => \common\models\logs\LogVarsExcluder::excludeVars() ], ], ], 'keyStorage' => [ 'class' => 'common\components\keyStorage\KeyStorage' ], 'i18n' => [ 'translations' => [ 'app' => [ 'class' => PhpMessageSource::class, 'basePath' => '@common/messages', ], '*' => [ 'class' => PhpMessageSource::class, 'basePath' => '@common/messages', 'fileMap' => [ 'common' => 'common.php', 'backend' => 'backend.php', 'frontend' => 'frontend.php', ], 'on missingTranslation' => ['\backend\modules\i18n\Module', 'missingTranslation'] ], ], ], 'soapClientAbit' => [ 'class' => 'common\components\soapClientManager', 'wsdl' => getenv("ABIT_WSDL"), 'login' => getenv("ABIT_LOGIN"), 'password' => getenv("ABIT_PASSWORD"), 'debug' => 1 ], 'soapClientStudent' => [ 'class' => 'common\components\soapClientManager', 'wsdl' => getenv("STUDENT_WSDL"), 'login' => getenv("STUDENT_LOGIN"), 'password' => getenv("STUDENT_PASSWORD"), 'debug' => 1 ], 'soapClientWebApplication' => [ 'class' => 'common\components\soapClientManager', 'wsdl' => getenv("WEB_APP_WSDL"), 'login' => getenv("WEB_APP_LOGIN"), 'password' => getenv("WEB_APP_PASSWORD"), 'debug' => 1 ], 'authentication1CManager' => [ 'class' => 'common\components\authentication1CManager', ], 'dictionaryManager' => [ 'class' => 'common\components\dictionaryManager\dictionaryManager', ], 'configurationManager' => [ 'class' => 'common\components\configurationManager' ], 'notifier' => [ 'class' => 'common\components\notifier\notifier', ], 'urlManagerBackend' => ArrayHelper::merge( [ 'hostInfo' => Yii::getAlias('@backendUrl') ], require(Yii::getAlias('@backend/config/_urlManager.php')) ), 'urlManagerFrontend' => ArrayHelper::merge( [ 'hostInfo' => Yii::getAlias('@frontendUrl') ], require(Yii::getAlias('@frontend/config/_urlManager.php')) ), 'urlManagerStorage' => ArrayHelper::merge( [ 'hostInfo' => Yii::getAlias('@storageUrl') ], require(Yii::getAlias('@storage/config/_urlManager.php')) ), 'admissionParser' => [ 'class' => 'common\components\admissionParser', ], 'treeLoader' => [ 'class' => 'common\components\tree\TreeLoader', ], 'getPortfolioService' => [ 'class' => 'common\components\getPortfolioService', ], 'localizationManager' => [ 'class' => LocalizationManager::class, ], 'headers' => [ 'class' => SecureHeaders::class, 'upgradeInsecureRequests' => SecureUrlManager::isHttpsEnabled(), 'blockAllMixedContent' => true, 'requireSriForScript' => false, 'requireSriForStyle' => false, 'xssProtection' => true, 'contentTypeOptions' => true, 'strictTransportSecurity' => [ 'max-age' => 10, 'includeSubDomains' => true, 'preload' => false ], 'xFrameOptions' => 'SAMEORIGIN', 'xPoweredBy' => 'Infocom-S', 'referrerPolicy' => 'strict-origin-when-cross-origin', 'cspDirectives' => require(__DIR__ . '/csp_config.php'), ], 'releaseVersionProvider' => [ 'class' => ReleaseVersionProvider::class, ], 'supportInfo' => [ 'class' => SupportInfo::class, ] ], 'params' => [ 'bsVersion' => '4.x', 'icon-framework' => \kartik\icons\Icon::FA, 'adminEmail' => getenv('ADMIN_EMAIL'), 'robotEmail' => [getenv('FROM_EMAIL') => getenv('PORTAL_NAME')], 'minimal_1C_version' => '2.2.9.9', 'availableLocales' => [ 'ru' => 'Русский (РФ)', ], Checksum::PARAM_VENDOR => '', ], 'controllerMap' => [], 'version' => '0.0.21.1', 'on beforeRequest' => function () { EnvironmentManager::CheckEnvironment(); ChecksumManager::initVendorChecksum(); \Yii::$app->attachBehavior('migrationCheck', [ 'class' => MigrationCheckFilter::class, 'except' => [ 'site/error', 'site/index', 'migrate/*', 'rbac-migrate/*', 'install-lk/index', 'update/index', 'update/update', '*/login', '*/logout', 'timeline-event/index', 'transfer/came-back' ], ]); \Yii::$app->attachBehavior('codeSettingsCheck', [ 'class' => CodeSettingsCheckFilter::class, 'except' => [ 'site/error', 'site/index', '*/login', '*/logout', 'migrate/*', 'rbac-migrate/*', 'install-lk/index', 'transfer/came-back' ], ]); \Yii::$app->attachBehavior('versionsCheck', [ 'class' => VersionsCheckFilter::class, 'except' => [ 'site/error', 'site/index', '*/login', '*/logout', 'migrate/*', 'rbac-migrate/*', 'install-lk/index', 'update/index', 'update/update', 'timeline-event/index', 'transfer/came-back' ], ]); }, ]; if (YII_ENV_DEV) { $config['bootstrap'][] = 'gii'; $config['modules']['gii'] = [ 'class' => 'yii\gii\Module' ]; } return $config;