![](/img/trans.png)
[英]Symfony deploy PHP fatal error: Class not found in AppKernel.php
[英]Symfony3: Fatal error: Class 'AppKernel' not found in .\bin\console
刚刚开始从事一个项目,我运行了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
另一个很大的可能性,特别是如果项目是从 v2.7 项目(或之前)更新的,则 Composer 不知道 AppKernel。 现在最好的做法是不要手动要求/包含文件,(因此这些行从web/app_*.php
和bin/console.php
中删除)。 而是让它自动加载。 但是,这需要 Composer 中的一行才能找到。 只有 Composer 自动加载器会被手动包含,然后它可以加载其他所有内容。
"autoload": {
"files": ["app/AppKernel.php"],
"psr-4": { // etc...
这有两个可能的原因。
首先,您的自动加载器已损坏或找不到文件
composer dump-autoload
第二个原因可能是,您的var
目录不可写,symfony 的缓存文件位于其中。 只需检查权限。 还要仔细查看日志文件。 也许它会告诉你真正的问题是什么。 (比如语法问题等)
出于某种原因,我必须明确地将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
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.