Сбой Laravel с сообщением об ошибке: Неустранимая ошибка: Неперехваченное исключение ReflectionException: класс App Http Kernel не существует

#laravel #composer-php

#laravel #composer-php

Вопрос:

Я думаю, что допустил ошибку, и, к сожалению, теперь мой сайт Laravel больше не создается корректно.

Я не уверен, где искать устранение этой проблемы. Может ли кто-нибудь указать мне правильное направление?

 root@f506ece6f4ea:/var/www/html# php public/index.php

Fatal error: Uncaught ReflectionException: Class AppHttpKernel does not exist in /var/www/html/vendor/laravel/framework/src/Illuminate/Container/Container.php:790
Stack trace:
#0 /var/www/html/vendor/laravel/framework/src/Illuminate/Container/Container.php(790): ReflectionClass->__construct('App\Http\Kernel')
#1 /var/www/html/vendor/laravel/framework/src/Illuminate/Container/Container.php(667): IlluminateContainerContainer->build('App\Http\Kernel')
#2 /var/www/html/vendor/laravel/framework/src/Illuminate/Container/Container.php(265): IlluminateContainerContainer->resolve('App\Http\Kernel', Array, false)
#3 /var/www/html/vendor/laravel/framework/src/Illuminate/Container/Container.php(787): IlluminateContainerContainer->IlluminateContainer{closure}(Object(IlluminateFoundationApplication), Array)
#4 /var/www/html/vendor/laravel/framework/src/Illuminate/Container/Container.php(667): IlluminateContainerContainer->build(Object(Closure))
#5 /var/www/html/vendor/laravel/framework/src/Illuminate/Container/Conta in /var/www/html/vendor/laravel/framework/src/Illuminate/Container/Container.php on line 790
root@f506ece6f4ea:/var/www/html# ls -al app/Http/
total 20
drwxr-xr-x 4 root root 4096 Feb 28 20:31 .
drwxr-xr-x 6 root root 4096 Feb 28 20:31 ..
drwxr-xr-x 3 root root 4096 Feb 28 20:31 Controllers
-rw-r--r-- 1 root root 2823 Feb 28 20:31 Kernel.php
drwxr-xr-x 2 root root 4096 Feb 28 20:31 Middleware
root@f506ece6f4ea:/var/www/html# cat composer.json
{
    "name": "dennis00/laravel-example",
    "description": "Example of Laravel Distro",
    "type": "project",
    "license": "GPL-2.0 ",
    "minimum-stability": "dev",
    "repositories": [
        {
            "type": "composer",
            "url": "https://packages.drupal.org/8"
        }
    ],
    "autoload": {
        "classmap": [
            "scripts/composer/ScriptHandler.php"
        ]
    },
    "scripts": {
        "post-root-package-install": [
            "@php -r "file_exists('.env') || copy('.env.example', '.env');""
        ],
        "post-create-project-cmd": [
            "@php artisan key:generate --ansi"
        ]
    },
    "require": {
        "dennis00/laravel-distro": "dev-master@dev",
        "laravel/horizon": "^4.0@dev"
    }
}
root@f506ece6f4ea:/var/www/html# ls vendor
autoload.php  cakephp dennis00  doctrine   egulias  fideloper   jakub-onderka  laravel  monolog  nette  ocramius  paragonie  phpstan  psy        ramsey     symfony   vlucas
bin       composer  dnoegel   dragonmantank  erusev   guzzlehttp  jean85       league   nesbot   nikic  opis  phpoption  psr      ralouphie  swiftmailer  tijsverkoyen
  

Комментарии:

1. Вы удалили каталог app / Http?

2. Он говорит, что AppHttpKernel не существует. Поэтому, если вы перейдете к app/Http убедитесь, что есть Kernel.php файл.

3. И если вы откроете этот файл, сохранится ли имя класса Kernel (чувствительно к регистру)?

4. Вы пробовали composer dump-autoload ?

5. Предполагается ли, что ваш autoload раздел не содержит записи PSR-4 для App префикса пространства имен?

Ответ №1:

Вы можете попробовать сделать следующее

  1. Проверьте свой psr-4 в composer.json. Он должен иметь

    «автозагрузка»: { «psr-4»: { «App «: «app/» } }

  2. Удалить vendor каталог

  3. выполнить composer update