如何在Laravel的项目中避免反射异常以及产生它的原因是什么


How to avoid Reflection Exception in Laravel's project and what are the causes which produce it?

我用Laravel做了一个名为my-school的项目。一切正常,除了当我使用 XAMPP 运行我的项目时。
然后我使用此网址:localhost/my-school/public/ .

下面是引发的异常:

Fatal error: Uncaught exception 'ReflectionException' with message
'Class MySchool'Http'Kernel does not exist' in
E:'xampp'htdocs'my-school'vendor'laravel'framework'src'Illuminate'Container'Container.php:776
Stack trace: #0
E:'xampp'htdocs'my-school'vendor'laravel'framework'src'Illuminate'Container'Container.php(776):
ReflectionClass->__construct('MySchool''Http''K...') #1
E:'xampp'htdocs'my-school'vendor'laravel'framework'src'Illuminate'Container'Container.php(656):
Illuminate'Container'Container->build('MySchool''Http''K...', Array)
#2 E:'xampp'htdocs'my-school'vendor'laravel'framework'src'Illuminate'Foundation'Application.php(613):
Illuminate'Container'Container->make('MySchool''Http''K...', Array) #3
E:'xampp'htdocs'my-school'vendor'laravel'framework'src'Illuminate'Container'Container.php(229):
Illuminate'Foundation'Application->make('MySchool''Http''K...', Array)
#4 E:'xampp'htdocs'my-school'vendor'laravel'framework'src'Illuminate'Container'Container.php(773):
Illuminate'Container'Container->Illuminate'Container'{clo in
E:'xampp'htdocs'my-school'vendor'laravel'framework'src'Illuminate'Container'Container.php
on line 776

这是我的作曲家.json文件内容:

{
    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "type": "project",
    "require": {
        "laravel/framework": "5.0.*"
    },
    "require-dev": {
        "phpunit/phpunit": "~4.0",
        "phpspec/phpspec": "~2.1"
    },
    "autoload": {
        "classmap": [
            "database"
        ],
        "psr-4": {
            "App''": "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"
    }
}

有人可以帮我找到我的项目问题吗?

看看作曲家自动加载的值:

"autoload": {
    "classmap": [
        "database"
    ],
    "psr-4": {
        "App''": "app/"
    }
},

这意味着app' folder 中所有类的命名空间应以"App''"开头作为名称。在您的情况下,错误状态为:

致命错误:未捕获的异常"反射异常"与消息 'Class MySchool''Http''Kernel 不存在'

MySchool'Http'Kernel永远不会被加载,因为它不存在。相反,您的作曲家需要以下结构:

Class App'Http'Kernel

看到区别了吗?然后,尝试按如下方式重命名应用程序:

php artisan app:name MySchool 

这样,所有班级都将按照我认为您想要的 MySchool 进行路由。