Symfony3:致命错误:在。\ bin \ console中找不到类'AppKernel'

时间:2016-03-29 14:18:02

标签: php symfony

刚刚开始处理项目,我运行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

3 个答案:

答案 0 :(得分:10)

另一个强大的可能性,特别是如果项目已从v2.7项目(或之前)更新,那么AppKernel就是Composer所不知道的。现在最佳做法是不手动要求/包含文件(因此这些行将从web/app_*.phpbin/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可以解决问题。