как побороть ошибку "The use statement with non-compound name 'Yii' has no effect"

у меня есть файл конфигурации консольного приложения

<?php
use Yii;

$params = array_merge(
    require __DIR__ . '/../../common/config/params.php',
    require __DIR__ . '/../../common/config/params-local.php',
    require __DIR__ . '/params.php',
    require __DIR__ . '/params-local.php'
);

return [
    'id' => 'app-console',
    'basePath' => dirname(__DIR__),
    'bootstrap' => ['log'],
    'controllerNamespace' => 'console\controllers',
    'aliases' => [
        '@bower' => '@vendor/bower-asset',
        '@npm'   => '@vendor/npm-asset',
    ],
    'controllerMap' => [
        'fixture' => [
            'class' => 'yii\console\controllers\FixtureController',
            'namespace' => 'common\fixtures',
          ],
    ],
    'components' => [
        'log' => [
            'targets' => [
                [
                    'class' => 'yii\log\FileTarget',
                    'levels' => ['error', 'warning'],
                ],
            ],
        ],
        'user' => [
            'class' => 'yii\web\User',
            'identityClass' => 'app\models\User',
            //'enableAutoLogin' => true,
                'enableSession' => false,
                'enableAutoLogin' => false,
        ],
        'session' => [ // for use session in console application
            'class' => 'yii\web\Session'
        ],
        'urlManager' => [
            'class' => 'yii\web\UrlManager',
            'scriptUrl' => Yii::getAlias('@webfront'),
        ],
        'mailer' => [
            'class' => 'yii\swiftmailer\Mailer',
            'viewPath' => '@app/mail',
            'transport' => [
                'class' => 'Swift_SmtpTransport',
                'host' => '////',
                'username' => Yii::$app->params['sellerEmail'],
                'password' => '////',
                'port' => '////',
//                'encryption' => 'tls',
            ],
            'messageConfig' => [  
              'from' => [Yii::$app->params['supportEmail'] => 'Почтовый робот']  
            ], 
        ],

    ],
    
    'params' => $params,
];

Как видите в нескольких местах я вызываю Yii::$app. Запускаю выполнение скрипта в консоли и получаю Warning: The use statement with non-compound name 'Yii' has no effect in .../www/console/config/main.php on line 2. Ладно, комментирую //use Yii; получаю Yii not found

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

У меня вопрос: в чём суть ошибки? и почему yii не надо подключать, если всегда всё подключается в том файле, который исполняется?

И есть ли разница между Yii::getAlias('@webfront') и \Yii::getAlias('@webfront') ?


Ответы (0 шт):