Использование трассировки стека Yii2 для устранения неполадок

У меня много проблем с выяснением того, как использовать трассировку стека Yii2 для диагностики проблем. В частности, я редко могу найти источник проблемы (в моем коде), основываясь на том, что говорит мне трассировка. Я уверен, что я просто тупой, так что я надеюсь, что кто-то может мне помочь в этом. Например, я неожиданно столкнулся с предупреждением PHP — yii \ base \ ErrorException
call_user_func () ожидает, что параметр 1 будет допустимым обратным вызовом, ошибка класса ‘error’ not found «, и я получаю трассировку, найденную ниже. Я не могу найти ничего в списке трассировки, который указывает на то, что я мог сделать неправильно в моя кодировка. Кажется, все указывает на основную кодировку, а не на мою. Может кто-нибудь помочь мне здесь?

 PHP Warning – yii\base\ErrorException

call_user_func () ожидает, что параметр 1 будет допустимым обратным вызовом, класс ‘error’ не найден

1. in L:\xampp\htdocs\public_html\vendor\yiisoft\yii2\BaseYii.php at line 346
337338339340341342343344345346347348349350351352353354355

public static function createObject($type, array $params = [])
{
if (is_string($type)) {
return static::$container->get($type, $params);
} elseif (is_array($type) && isset($type['class'])) {
$class = $type['class'];
unset($type['class']);
return static::$container->get($class, $params, $type);
} elseif (is_callable($type, true)) {
return call_user_func($type, $params);
} elseif (is_array($type)) {
throw new InvalidConfigException('Object configuration must be an array containing a "class" element.');
} else {
throw new InvalidConfigException("Unsupported configuration type: " . gettype($type));
}
}

private static $_logger;2. yii\base\ErrorHandler::handleError(2, 'call_user_func() expects paramet...', 'L:\xampp\htdocs\public_html\vend...', 346, ...)
3. in L:\xampp\htdocs\public_html\vendor\yiisoft\yii2\BaseYii.php – call_user_func(['error', 'warning'], []) at line 346
4. in L:\xampp\htdocs\public_html\vendor\yiisoft\yii2\log\Dispatcher.php – yii\BaseYii::createObject(['error', 'warning']) at line 101
5. in L:\xampp\htdocs\public_html\vendor\yiisoft\yii2\base\Object.php – yii\log\Dispatcher::init() at line 107
6. in L:\xampp\htdocs\public_html\vendor\yiisoft\yii2\log\Dispatcher.php – yii\base\Object::__construct(['traceLevel' => 3, 'targets' => ['class' => 'yii\log\FileTarget', 'levels' => ['error', 'warning']]]) at line 89
7. yii\log\Dispatcher::__construct(['traceLevel' => 3, 'targets' => ['class' => 'yii\log\FileTarget', 'levels' => ['error', 'warning']]])
8. in L:\xampp\htdocs\public_html\vendor\yiisoft\yii2\di\Container.php – ReflectionClass::newInstanceArgs([['traceLevel' => 3, 'targets' => ['class' => 'yii\log\FileTarget', 'levels' => ['error', 'warning']]]]) at line 368
9. in L:\xampp\htdocs\public_html\vendor\yiisoft\yii2\di\Container.php – yii\di\Container::build('yii\log\Dispatcher', [], ['traceLevel' => 3, 'targets' => ['class' => 'yii\log\FileTarget', 'levels' => ['error', 'warning']]]) at line 147
10. in L:\xampp\htdocs\public_html\vendor\yiisoft\yii2\BaseYii.php – yii\di\Container::get('yii\log\Dispatcher', [], ['traceLevel' => 3, 'targets' => ['class' => 'yii\log\FileTarget', 'levels' => ['error', 'warning']]]) at line 344
11. in L:\xampp\htdocs\public_html\vendor\yiisoft\yii2\di\ServiceLocator.php – yii\BaseYii::createObject(['traceLevel' => 3, 'targets' => ['class' => 'yii\log\FileTarget', 'levels' => ['error', 'warning']], 'class' => 'yii\log\Dispatcher']) at line 133
12. in L:\xampp\htdocs\public_html\vendor\yiisoft\yii2\base\Application.php – yii\di\ServiceLocator::get('log') at line 302
13. in L:\xampp\htdocs\public_html\vendor\yiisoft\yii2\web\Application.php – yii\base\Application::bootstrap() at line 63
14. in L:\xampp\htdocs\public_html\vendor\yiisoft\yii2\base\Application.php – yii\web\Application::bootstrap() at line 267
15. in L:\xampp\htdocs\public_html\vendor\yiisoft\yii2\base\Object.php – yii\base\Application::init() at line 107
16. in L:\xampp\htdocs\public_html\vendor\yiisoft\yii2\base\Application.php – yii\base\Object::__construct(['components' => ['cache' => ['class' => 'yii\caching\FileCache'], 'urlManager' => ['enablePrettyUrl' => true, 'showScriptName' => 'false', 'class' => 'yii\web\UrlManager', 'rules' => ['<controller:\w+>/<id:\d+>' => '<controller>/view', '<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>', '<controller:\w+>/<action:\w+>' => '<controller>/<action>']], 'db' => ['class' => 'yii\db\Connection', 'dsn' => 'mysql:host=localhost;dbname=larr...', 'username' => 'xxxx', 'password' => 'xxxx', ...], 'mailer' => ['class' => 'yii\swiftmailer\Mailer', 'viewPath' => '@common/mail', 'useFileTransport' => true], ...], 'modules' => ['social' => ['class' => 'kartik\social\Module', 'disqus' => ['settings' => ['shortname' => 'DISQUS_SHORTNAME']], 'facebook' => ['appId' => 'xxxxx', 'secret' => 'xxxxx']], 'gridview' => ['class' => '\kartik\grid\Module'], 'debug' => 'yii\debug\Module', 'gii' => 'yii\gii\Module'], 'id' => 'app-frontend', 'name' => 'MemeHope', ...]) at line 206
17. in L:\xampp\htdocs\public_html\frontend\web\index.php – yii\base\Application::__construct(['vendorPath' => 'L:\xampp\htdocs\public_html/vend...', 'components' => ['cache' => ['class' => 'yii\caching\FileCache'], 'urlManager' => ['enablePrettyUrl' => true, 'showScriptName' => 'false', 'class' => 'yii\web\UrlManager', 'rules' => ['<controller:\w+>/<id:\d+>' => '<controller>/view', '<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>', '<controller:\w+>/<action:\w+>' => '<controller>/<action>']], 'db' => ['class' => 'yii\db\Connection', 'dsn' => 'mysql:host=localhost;dbname=larr...', 'username' => 'xxxxx', 'password' => 'xxxxx', ...], 'mailer' => ['class' => 'yii\swiftmailer\Mailer', 'viewPath' => '@common/mail', 'useFileTransport' => true], ...], 'modules' => ['social' => ['class' => 'kartik\social\Module', 'disqus' => ['settings' => ['shortname' => 'DISQUS_SHORTNAME']], 'facebook' => ['appId' => 'xxxxxx', 'secret' => 'xxxx']], 'gridview' => ['class' => '\kartik\grid\Module'], 'debug' => 'yii\debug\Module', 'gii' => 'yii\gii\Module'], 'id' => 'app-frontend', ...]) at line 17
1112131415161718

require(__DIR__ . '/../../common/config/main.php'),
require(__DIR__ . '/../../common/config/main-local.php'),
require(__DIR__ . '/../config/main.php'),
require(__DIR__ . '/../config/main-local.php')
);

$application = new yii\web\Application($config);
$application->run();

Вот как выглядит frontend / config / main.php:

<?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-frontend',
'basePath'            => dirname(__DIR__),
'name'                => 'MemeHope',
'bootstrap'           => ['log'],
'controllerNamespace' => 'frontend\controllers',
'components'          => [

'urlManager'   => [
'class'           => 'yii\web\UrlManager',
'enablePrettyUrl' => true,
'showScriptName'  => 'false',
'rules'           => [
'<controller:\w+>/<id:\d+>'              => '<controller>/view',
'<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
'<controller:\w+>/<action:\w+>'          => '<controller>/<action>',
],
],
'log'          => [
'traceLevel' => YII_DEBUG ? 3 : 0,
'targets'    => [
'class'  => 'yii\log\FileTarget',
'levels' => ['error', 'warning'],
],
],
'errorHandler' => [
'errorAction' => 'site/error',
],
'user'         => [
'identityClass'   => 'common\models\User',
'enableAutoLogin' => true,
],
],
'modules'             => [
'gridview' => [
'class' => '\kartik\grid\Module'
// enter optional module parameters below - only if you need to
// use your own export download action or custom translation
// message source
// 'downloadAction' => 'gridview/export/download',
// 'i18n' => []
],
],
'params'              => $params,
];

Все остальное находится в общем / config / main.php, и бэкэнд сайта работает отлично, поэтому я сомневаюсь, что проблема есть.

0

Решение

Попробуйте обновить ваш проект, запустив composer update или же php composer.phar update, Иногда файлы портятся во время работы над localhost, Это случалось со мной много раз. Но обновление пакетов решило мою проблему. Видите, если это работает для вас тоже.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]