Anonymous
Ошибка консольного приложения Yii2 «Не удалось создать экземпляр компонента или класса «пользователь».»
Сообщение
Anonymous » 23 июл 2024, 03:16
Я новичок в Yii2. Я создал интерфейсное приложение Yii2 и теперь хочу определить задание cron, которое будет вызывать какое-то действие каждую ночь.
Для этого я создал простое консольное приложение, следуя руководству из здесь:
https://www.yiiframework.com/wiki/646/h ... n-in-yii-2 со следующим кодом:
Код: Выделить всё
namespace console\controllers;
use yii\console\Controller;
class CronController extends Controller {
public function actionIndex() {
echo "cron service runnning";
}
}
Я пытаюсь вызвать его, запустив это:
Но я получаю следующую ошибку:
Код: Выделить всё
Exception 'yii\base\InvalidConfigException' with message 'Failed to instantiate component or class "user".'
in /var/www/html/my-yii2-app/vendor/yiisoft/yii2/di/Instance.php:139
Stack trace:
#0 /var/www/html/my-yii2-app/vendor/yiisoft/yii2/filters/AccessControl.php(100): yii\di\Instance::ensure(Object(yii\di\Instance), 'yii\\web\\User')
#1 /var/www/html/my-yii2-app/vendor/yiisoft/yii2/base/Object.php(107): yii\filters\AccessControl->init()
#2 [internal function]: yii\base\Object->__construct(Array)
#3 /var/www/html/my-yii2-app/vendor/yiisoft/yii2/di/Container.php(381): ReflectionClass->newInstanceArgs(Array)
#4 /var/www/html/my-yii2-app/vendor/yiisoft/yii2/di/Container.php(156): yii\di\Container->build('yii\\filters\\Acc...', Array, Array)
#5 /var/www/html/my-yii2-app/vendor/yiisoft/yii2/BaseYii.php(348): yii\di\Container->get('yii\\filters\\Acc...', Array, Array)
#6 /var/www/html/my-yii2-app/vendor/yiisoft/yii2/base/Component.php(183): yii\BaseYii::createObject(Array)
#7 /var/www/html/my-yii2-app/vendor/yiisoft/yii2/BaseYii.php(529): yii\base\Component->__set('beforeRequest', Array)
#8 /var/www/html/my-yii2-app/vendor/yiisoft/yii2/base/Object.php(105): yii\BaseYii::configure(Object(yii\console\Application), Array)
#9 /var/www/html/my-yii2-app/vendor/yiisoft/yii2/base/Application.php(205): yii\base\Object->__construct(Array)
#10 /var/www/html/my-yii2-app/vendor/yiisoft/yii2/console/Application.php(89): yii\base\Application->__construct(Array)
#11 /var/www/html/my-yii2-app/yii(26): yii\console\Application->__construct(Array)
#12 {main}
Содержимое common/config/main.php:
Код: Выделить всё
return [
'vendorPath' => dirname(dirname(__DIR__)) . '/vendor',
'components' => [
'cache' => [
'class' => 'yii\caching\FileCache',
],
],
//if guest user access site so, redirect to login page.
'as beforeRequest' => [
'class' => 'yii\filters\AccessControl',
'rules' => [
[
'actions' => ['login', 'error'],
'allow' => true,
],
[
'allow' => true,
'roles' => ['@'],
],
],
],
// end if guest user access site so, redirect to login page.
'language' => 'ro-RO',
'modules' => [
'attachments' => [
'class' => nemmo\attachments\Module::className(),
'tempPath' => '@app/../uploads/temp',
'storePath' => '@app/../uploads/store',
'rules' => [ // Rules according to the FileValidator
'maxFiles' => 10, // Allow to upload maximum 3 files, default to 3
//'mimeTypes' => 'image/png', // Only png images
//'maxSize' => 1024 * 1024 // 1 MB
],
//'tableName' => '{{%attachments}}' // Optional, default to 'attach_file'
'tableName' => 'attachment' // Optional, default to 'attach_file'
]
]
];
Содержимое console/config/main.php:
Код: Выделить всё
$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',
'controllerMap' => [
'fixture' => [
'class' => 'yii\console\controllers\FixtureController',
'namespace' => 'common\fixtures',
],
'migrate' => [
'class' => 'yii\console\controllers\MigrateController',
'migrationNamespaces' => [
'nemmo\attachments\migrations',
],
],
],
'components' => [
'log' => [
'targets' => [
[
'class' => 'yii\log\FileTarget',
'levels' => ['error', 'warning'],
],
],
],
],
'params' => $params,
];
Понятия не имею, что может быть не так.
ОС: CentOS 7, PHP версии 7
Подробнее здесь:
https://stackoverflow.com/questions/505 ... class-user
1721693774
Anonymous
Я новичок в Yii2. Я создал интерфейсное приложение Yii2 и теперь хочу определить задание cron, которое будет вызывать какое-то действие каждую ночь. Для этого я создал простое консольное приложение, следуя руководству из здесь: https://www.yiiframework.com/wiki/646/how-to-implement-cron-in-yii-2 со следующим кодом: [code]namespace console\controllers; use yii\console\Controller; class CronController extends Controller { public function actionIndex() { echo "cron service runnning"; } } [/code] Я пытаюсь вызвать его, запустив это: [code]php yii cron/index [/code] Но я получаю следующую ошибку: [code] Exception 'yii\base\InvalidConfigException' with message 'Failed to instantiate component or class "user".' in /var/www/html/my-yii2-app/vendor/yiisoft/yii2/di/Instance.php:139 Stack trace: #0 /var/www/html/my-yii2-app/vendor/yiisoft/yii2/filters/AccessControl.php(100): yii\di\Instance::ensure(Object(yii\di\Instance), 'yii\\web\\User') #1 /var/www/html/my-yii2-app/vendor/yiisoft/yii2/base/Object.php(107): yii\filters\AccessControl->init() #2 [internal function]: yii\base\Object->__construct(Array) #3 /var/www/html/my-yii2-app/vendor/yiisoft/yii2/di/Container.php(381): ReflectionClass->newInstanceArgs(Array) #4 /var/www/html/my-yii2-app/vendor/yiisoft/yii2/di/Container.php(156): yii\di\Container->build('yii\\filters\\Acc...', Array, Array) #5 /var/www/html/my-yii2-app/vendor/yiisoft/yii2/BaseYii.php(348): yii\di\Container->get('yii\\filters\\Acc...', Array, Array) #6 /var/www/html/my-yii2-app/vendor/yiisoft/yii2/base/Component.php(183): yii\BaseYii::createObject(Array) #7 /var/www/html/my-yii2-app/vendor/yiisoft/yii2/BaseYii.php(529): yii\base\Component->__set('beforeRequest', Array) #8 /var/www/html/my-yii2-app/vendor/yiisoft/yii2/base/Object.php(105): yii\BaseYii::configure(Object(yii\console\Application), Array) #9 /var/www/html/my-yii2-app/vendor/yiisoft/yii2/base/Application.php(205): yii\base\Object->__construct(Array) #10 /var/www/html/my-yii2-app/vendor/yiisoft/yii2/console/Application.php(89): yii\base\Application->__construct(Array) #11 /var/www/html/my-yii2-app/yii(26): yii\console\Application->__construct(Array) #12 {main} [/code] Содержимое common/config/main.php: [code]return [ 'vendorPath' => dirname(dirname(__DIR__)) . '/vendor', 'components' => [ 'cache' => [ 'class' => 'yii\caching\FileCache', ], ], //if guest user access site so, redirect to login page. 'as beforeRequest' => [ 'class' => 'yii\filters\AccessControl', 'rules' => [ [ 'actions' => ['login', 'error'], 'allow' => true, ], [ 'allow' => true, 'roles' => ['@'], ], ], ], // end if guest user access site so, redirect to login page. 'language' => 'ro-RO', 'modules' => [ 'attachments' => [ 'class' => nemmo\attachments\Module::className(), 'tempPath' => '@app/../uploads/temp', 'storePath' => '@app/../uploads/store', 'rules' => [ // Rules according to the FileValidator 'maxFiles' => 10, // Allow to upload maximum 3 files, default to 3 //'mimeTypes' => 'image/png', // Only png images //'maxSize' => 1024 * 1024 // 1 MB ], //'tableName' => '{{%attachments}}' // Optional, default to 'attach_file' 'tableName' => 'attachment' // Optional, default to 'attach_file' ] ] ]; [/code] Содержимое console/config/main.php: [code]$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', 'controllerMap' => [ 'fixture' => [ 'class' => 'yii\console\controllers\FixtureController', 'namespace' => 'common\fixtures', ], 'migrate' => [ 'class' => 'yii\console\controllers\MigrateController', 'migrationNamespaces' => [ 'nemmo\attachments\migrations', ], ], ], 'components' => [ 'log' => [ 'targets' => [ [ 'class' => 'yii\log\FileTarget', 'levels' => ['error', 'warning'], ], ], ], ], 'params' => $params, ]; [/code] Понятия не имею, что может быть не так. ОС: CentOS 7, PHP версии 7 Подробнее здесь: [url]https://stackoverflow.com/questions/50570536/yii2-console-app-error-failed-to-instantiate-component-or-class-user[/url]