【问题标题】:Laravel error 'ReflectionException' - 'Class App\Http\Kernel does not exist'Laravel 错误“ReflectionException”-“类 App\Http\Kernel 不存在”
【发布时间】:2022-01-13 20:17:31
【问题描述】:

我试图使用我在学校开发一年的 laravel 项目上线,但遇到了一些问题。 在我的托管服务服务器上上传整个项目后,我的浏览器和 SSH shell 都出现了这些错误。

致命错误:在 /home/clients/ffa41f94063541f86a0fe6602a73caa1/myforms/vendor/laravel/framework/src/Illuminate/Container/Container.php 中出现消息“Class App\Http\Kernel 不存在”的未捕获异常“ReflectionException”: 779 堆栈跟踪:#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/客户端/ffa41f94063541f86a0fe6602a73caa1/myforms/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(644): Illuminate\Container\Container->make('App\Http\Kernel', Array) #3 /home/clients /ffa41f94063541f86a0fe6602a73caa1/myforms/vendor/laravel/framework/src/Illuminate/Container/Container.php(229): Illuminate\Foundation\Application->make('App\Http\Kernel', Array) #4 /home/clients/ /home/clients/ffa41f94063541f86a0fe6602a73caa1/myforms/vendor/laravel/framework/src/Illuminate/Container/Container.php 中的 ffa41f94063 位于第 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 时出现错误

如果我应该发布另一个可能有用的文件,请通知我。

提前感谢您的帮助。

【问题讨论】:

  • composer update 会产生什么错误?
  • 检查this运行composer dump-autoload
  • @scottevans93 它会生成我之前发布的那个。但它添加了一行:Script php artisan clear-compiled handling the post-update-cmd event returned wi th error code 255
  • @pari 感谢链接,他说 检查 bootstrap/app.php 中的绑定是否正确是什么意思。

标签: php laravel namespaces psr-4


【解决方案1】:

在 composer.json 中更改:

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

到:

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

在服务器的源目录中,运行composer update,然后运行composer dump-autoload

Laravel 中的 PSR-4 查找相对于项目根目录的命名空间

【讨论】:

  • 使用命令行 (php artisan app:name "my name") 更改我的 laravel 应用程序名称后测试一切是否正常。应用程序崩溃并销毁。多亏了 'git',我放弃了这些更改。但我确实面临同样的问题。 CL(作曲家转储自动加载)拯救了我的一天。谢谢。
【解决方案2】:

检查console/kernel.php 是否在app 文件夹内,如果不是,它可能在您的laravelApp 内。

如果是这样,请将console/kernel.php 移动到app-文件夹。

【讨论】:

  • 该死,我从谷歌找到了这个问题,然后我看到了 4 秒前的答案
【解决方案3】:

在我的情况下,composer.json 缺少右括号关闭“{}”并且带有“psr-4”的行在错误的 json 段中。

  1. 检查 composer.json 是否正确对齐“psr-4”,它应该是“autoload”部分的子项。
  2. 删除供应商
  3. 作曲家安装

好的

【讨论】:

    【解决方案4】:

    {
    	"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"
    	}
    }

    【讨论】:

    • 您可以就您所做的更改添加评论吗?
    • 虽然此代码可以解决问题,including an explanation 说明如何以及为什么解决问题将真正有助于提高您的帖子质量,并可能导致更多的赞成票。请记住,您正在为将来的读者回答问题,而不仅仅是现在提问的人。请edit您的回答添加解释并说明适用的限制和假设。
    猜你喜欢
    • 2018-01-03
    • 2016-09-04
    • 2015-10-20
    • 1970-01-01
    • 2020-05-05
    • 2016-01-12
    • 2019-07-28
    • 2018-09-27
    相关资源
    最近更新 更多