zm
2021-03-25 d84ff6053b22269a6c59dc005e9efb8de6595988
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
<?php
 
$local = file_exists(__DIR__ . '/local.php') ? require(__DIR__ . '/local.php') : [];
$params = file_exists(__DIR__ . '/params.php') ? require(__DIR__ . '/params.php') : [];
$db = file_exists(__DIR__ . '/db.php') ? require(__DIR__ . '/db.php') : [
    'host' => null,
    'port' => null,
    'dbname' => null,
    'username' => null,
    'password' => null,
    'tablePrefix' => null,
];
if (isset($local['queue'])) {
    $local['queue3'] = $local['queue'];
    $local['queue3']['channel'] = $local['queue']['channel'] . '_other';
 
    $local['queue4'] = $local['queue'];
    $local['queue4']['channel'] = $local['queue']['channel'] . '_export';
}
 
$config = [
    'id' => 'zjhj_mall_v4',
    'basePath' => dirname(__DIR__),
    'language' => 'zh-CN',
    'timeZone' => 'Asia/Shanghai',
    'bootstrap' => ['log', 'queue', 'queue3', 'queue4'],
    'components' => [
        'cache' => isset($local['cache']) ? $local['cache'] : [
            'class' => 'yii\caching\FileCache',
        ],
        'db' => [
            'class' => 'yii\db\Connection',
            'dsn' => 'mysql:host=' . $db['host'] . ';port=' . $db['port'] . ';dbname=' . $db['dbname'],
            'username' => $db['username'],
            'password' => $db['password'],
            'tablePrefix' => $db['tablePrefix'],
            'charset' => 'utf8mb4',
            'attributes' => [
                // Windows 环境下貌似无效?
                // PDO::ATTR_EMULATE_PREPARES => false,
                // PDO::ATTR_STRINGIFY_FETCHES => false,
            ],
            'enableSchemaCache' => isset($local['enableSchemaCache']) ? $local['enableSchemaCache'] : false,
            // Duration of schema cache.
            'schemaCacheDuration' => isset($local['schemaCacheDuration']) ? $local['schemaCacheDuration'] : 3600,
            // Name of the cache component used to store schema information
            'schemaCache' => isset($local['schemaCache']) ? $local['schemaCache'] : 'cache',
            'on afterOpen' => function ($event) {
                Yii::$app->db->createCommand(
                    "SET SESSION sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'"
                )->execute();
            },
        ],
        'log' => isset($local['log']) ? $local['log'] : [
            'traceLevel' => YII_DEBUG ? 3 : 0,
            'targets' => [
                [
                    'class' => 'yii\log\FileTarget',
                    'levels' => ['error', 'warning',],
                    'logVars' => ['_GET', '_POST', '_FILES',],
                ],
            ],
        ],
        'mailer' => [
            'class' => 'yii\swiftmailer\Mailer',
            'viewPath' => '@app/core/mail',
            'useFileTransport' => false,
            'transport' => [
                'class' => 'Swift_SmtpTransport',
                'host' => 'smtp.qq.com',
                'port' => '465',
                'encryption' => 'ssl',
            ],
            'messageConfig' => [
                'charset' => 'UTF-8',
            ],
        ],
        'plugin' => [
            'class' => '\app\core\Plugin',
        ],
        'mutex' => [
            'class' => \yii\mutex\MysqlMutex::class,
        ],
        'queue' => isset($local['queue']) ? $local['queue'] : [
            'class' => \yii\queue\db\Queue::class,
            'tableName' => '{{%core_queue}}',
        ],
        'queue3' => isset($local['queue3']) ? $local['queue3'] : [
            'class' => \yii\queue\db\Queue::class,
            'tableName' => '{{%core_queue}}',
        ],
        'queue4' => isset($local['queue4']) ? $local['queue4'] : [
            'class' => \yii\queue\db\Queue::class,
            'tableName' => '{{%core_queue}}',
        ],
        'serializer' => [
            'class' => '\app\core\Serializer',
        ],
        'session' => isset($local['session']) ? $local['session'] : [
            'name' => 'HJ_SESSION_ID',
            'class' => 'yii\web\DbSession',
            'sessionTable' => '{{%core_session}}',
        ],
        'user' => [
            'class' => 'yii\web\User',
            'identityClass' => 'app\models\User',
            'enableAutoLogin' => true,
        ],
    ],
    'aliases' => [
        '@bower' => '@vendor/bower-asset',
    ],
    'params' => $params,
    'modules' => [
    ],
];
if (!$db['username']) {
    unset($config['components']['session']);
}
if (!empty($local['redis'])) {
    $config['components']['redis'] = $local['redis'];
}
return $config;