web-dev-qa-db-fra.com

Laravel error 'ReflectionException' - 'Class App \ Http \ Kernel n'existe pas'

J'essayais de vivre avec un projet laravel que j'ai développé un an à l'école et j'ai rencontré un problème. Après avoir téléchargé tout le projet sur le serveur de mon service d'hébergement, j'ai eu ces erreurs sur mon navigateur ainsi que sur mon SSH Shell.

Erreur irrécupérable: exception non capturée 'ReflectionException' avec le message 'Class App\Http\Kernel n'existe pas' dans /home/clients/ffa41f94063541f86a0fe6602a73caa1/myforms/vendor/laravel/framework/src/Illuminate/Container/Container.phont77.php : # 0 /home/clients/ffa41f94063541f86a0fe6602a73caa1/myforms/vendor/laravel/framework/src/Illuminate/Container/Container.php(779): ReflectionClass -> __ construct ('App\Http\Kernel') # 1 /ffa41f94063541f86a0fe6602a73caa1/myforms/vendor/laravel/framework/src/Illuminate/Container/Container.php(659): Illuminate\Container\Container-> build ('App\Http\Kernel', Array) # 2/home ffa41f94063541f86a0fe6602a73caa1/myforms/vendor/laravel/framework/src/Illuminate/Foundation/Application.php (644): Illuminate\Container\Container-> make ('App\Http\Kernel', Array) # 3/home/clients/ffa41f9406a61 /myforms/vendor/laravel/framework/src/Illuminate/Container/Container.php(229): Illuminate\Foundation\Application-> make ('App\Http\Kernel', Array) # 4/home/clients/ffa41f94063 dans /home/clients/ffa41f94063541f86a0fe6602a73caa1/myforms/vendor/laravel/framework/src/Illuminate/Container/Container.php sur la ligne 779

Je pense que cela pourrait être lié à ma configuration d'espace de noms, car je n'ai pas encore tout compris.

Voici mon fichier 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"
        }
}

Ce que j'ai déjà fait:

  • Supprimez/vendor et effectuez une nouvelle installation avec composer install
  • composer dump-autoload
  • composer update btw, j'obtiens l'erreur lorsque j'insère le composer update

Veuillez m'informer si je dois poster un autre fichier qui pourrait être utile.

Merci d'avance pour votre aide.

12
NicoSalvadore

Dans composer.json, changez:

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

à:

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

Sur le serveur, dans votre répertoire source, exécutez composer update puis composer dump-autoload

PSR-4 dans Laravel recherche les espaces de noms par rapport à la racine du projet

17
Roger Creasy

Dans mon cas, composeur.json manquait le crochet de support, fermant "{}" et la ligne avec "psr-4" était dans le mauvais segment json.

  1. Vérifiez composer.json pour l'alignement correct de "psr-4", il devrait être l'enfant de la section "autoload".
  2. Supprimer le fournisseur
  3. installation du compositeur

D'accord

0
Lazirro