web-dev-qa-db-ja.com

Laravel error 'ReflectionException'-'Class App \ Http \ Kernel does not exist'

私はlaravelプロジェクトでライブを開始しようとしていましたが、学校で1年前に開発しましたが、問題が発生しました。ホスティングサービスのサーバーにプロジェクト全体をアップロードした後、これらのエラーが発生しましたブラウザと私のSSHシェル。

致命的エラー:/home/clients/ffa41f94063541f86a0fe6602a73caa1/myforms/vendor/laravel/framework/src/Illuminate/Container/Container.php:779のスタックトレースにメッセージ「Class App\Http\Kernel does not exist」のキャッチされていない例外「ReflectionException」 :#0 /home/clients/ffa41f94063541f86a0fe6602a73caa1/myforms/vendor/laravel/framework/src/Illuminate/Container/Container.php(779):ReflectionClass-> __ construct( 'App\Http\Kernel')#1/home/clients /ffa41f94063541f86a0fe6602a73caa1/myforms/vendor/laravel/framework/src/Illuminate/Container/Container.php(659):Illuminate\Container\Container-> build( 'App\Http\Kernel'、Array)#2/home/clients/ffa41f94063541f86a0fe6602a73caa1/myforms/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(644):Illuminate\Container\Container-> make( 'App\Http\Kernel'、Array)#3/home/clients/ffa41f9406352a86ca0ca1660a0 /myforms/vendor/laravel/framework/src/Illuminate/Container/Container.php(229):Illuminate\Foundation\Application-> make( 'App\Http\Kernel'、Array) #4/home/clients/ffa41f94063 /home/clients/ffa41f94063541f86a0fe6602a73caa1/myforms/vendor/laravel/framework/src/Illuminate/Container/Container.phpの779行目

私はまだすべてを理解していないため、名前空間の構成に関連している可能性があると思います。

これが私のcomposer.jsonファイルです:

{
        "name": "laravel/laravel",
        "description": "The Laravel Framework.",
        "keywords": ["framework", "laravel"],
        "license": "MIT",
        "type": "project",
        "require": {
                "laravel/framework": "5.0.*",
                "illuminate/html": "5.*",
                "barryvdh/laravel-dompdf": "0.5.*",
                "guzzlehttp/guzzle": "~4.0"

        },
        "require-dev": {
                "phpunit/phpunit": "~4.0",
                "phpspec/phpspec": "~2.1"
        },
        "autoload": {
                "classmap": [
                        "database"
                ],
                "psr-4": {
                        "App\\": "myforms/app/"
                }
        },
        "autoload-dev": {
                "classmap": [
                        "tests/TestCase.php"
                ]
        },
        "scripts": {
                "post-install-cmd": [
                        "php artisan clear-compiled",
                        "php artisan optimize"
                ],
                "post-update-cmd": [
                        "php artisan clear-compiled",
                        "php artisan optimize"
                ],
                "post-create-project-cmd": [
                        "php -r \"copy('.env.example', '.env');\"",
                        "php artisan key:generate"
                ]
        },
        "config": {
                "preferred-install": "dist"
        }
}

私がすでにやったこと:

  • / vendorを削除し、composer installを使用して新しいインストールを作成します
  • composer dump-autoload
  • composer updateところで、composer updateを挿入するとエラーが発生します

役に立つと思われる別のファイルを投稿する必要があるかどうかをお知らせください。

よろしくお願いします。

12
NicoSalvadore

Composer.jsonの変更:

 "psr-4": {
        "App\\": "myforms/app/"
    } 

に:

 "psr-4": {
        "App\\": "app/"
    }

サーバーのソースディレクトリで、composer update、次にcomposer dump-autoloadを実行します。

LaravelのPSR-4は、プロジェクトのルートに関連する名前空間を探します

17
Roger Creasy

私の場合、composer.jsonは、「{}」を閉じるプロッパーブラケットが欠落しており、「psr-4」の行は誤ったjsonセグメントにありました。

  1. Composer.jsonをチェックして、「psr-4」が「autoload」セクションの子になっていることを確認します。
  2. ベンダーを削除
  3. 作曲家のインストール

OK

0
Lazirro