刚刚开始处理项目,我运行composer update
并在尝试清除缓存时遇到异常。
当我尝试运行php bin\console server:run
时,我会收到这条消息:
php bin\console server:run
PHP Fatal error: Uncaught Symfony\Component\Debug\Exception\FatalThrowableError: Fatal error: Class 'AppKernel' not found in CoreBundle\bin\console:27
Stack trace:
#0 {main}
thrown in CoreBundle\bin\console on line 27
Fatal error: Uncaught Symfony\Component\Debug\Exception\FatalThrowableError: Fatal error: Class 'AppKernel' not found in CoreBundle\bin\console on line 27
Symfony\Component\Debug\Exception\FatalThrowableError: Fatal error: Class 'AppKernel' not found in CoreBundle\bin\console on line 27
Call Stack:
0.0112 427536 1. Symfony\Component\Debug\ErrorHandler->handleException() CoreBundle\vendor\symfony\symfony\src\Symfony\Component\Debug\ErrorHandler.php:0
答案 0 :(得分:10)
另一个强大的可能性,特别是如果项目已从v2.7项目(或之前)更新,那么AppKernel就是Composer所不知道的。现在最佳做法是不手动要求/包含文件(因此这些行将从web/app_*.php
和bin/console.php
中删除)。而是让它自动加载。但是,这需要在Composer中使用一行,以便可以找到它。只能手动包含作曲家自动加载器,然后可以加载其他所有内容。
"autoload": {
"files": ["app/AppKernel.php"],
"psr-4": { // etc...
答案 1 :(得分:1)
这有两个可能的原因。
首先您的自动加载器被删除或无法找到文件
composer dump-autoload
第二个原因可能是,您的var
目录不可写,其中放置了symfony的缓存文件。
只需检查权限。
还要仔细查看日志文件。
也许它告诉你真正的问题是什么。
(就像语法等问题一样。)
答案 2 :(得分:0)
由于某种原因,我不得不明确地添加src/Kernel.php
来自动加载。因此,我的composer.json自动加载部分变为:
"autoload" : {
"files": ["app/AppKernel.php",
"src/Kernel.php"],
"psr-4": { "": "src/"},
"classmap": [
"app/AppKernel.php",
"app/AppCache.php"
]
}
添加此内容后,运行composer dump-autoload
可以解决问题。