当我尝试通过docker compose运行我的Symfony项目时,得到以下错误。下面是错误:
Script cache:clear returned with error code 255
!! Symfony\Component\ErrorHandler\Error\ClassNotFoundError {#76
!! #message: """
!! Attempted to load class "MakerBundle" from namespace "Symfony\Bundle\MakerBundle".\n
!! Did you forget a "use" statement for another namespace?
!! """
!! #code: 0
!! #file: "./vendor/symfony/framework-bundle/Kernel/MicroKernelTrait.php"
!! #line: 132
!! trace: {
!! ./vendor/symfony/framework-bundle/Kernel/MicroKernelTrait.php:132 { …}
!! ./vendor/symfony/http-kernel/Kernel.php:386 { …}
!! ./vendor/symfony/http-kernel/Kernel.php:788 { …}
!! ./vendor/symfony/http-kernel/Kernel.php:128 { …}
!! ./vendor/symfony/framework-bundle/Console/Application.php:168 { …}
!! ./vendor/symfony/framework-bundle/Console/Application.php:74 { …}
!! ./vendor/symfony/console/Application.php:171 { …}
!! ./vendor/symfony/runtime/Runner/Symfony/ConsoleApplicationRunner.php:54 { …}
!! ./vendor/autoload_runtime.php:35 { …}
!! ./bin/console:11 {
!! ›
!! › require_once dirname(__DIR__).'/vendor/autoload_runtime.php';
!! ›
!! arguments: {
!! "/var/www/html/vendor/autoload_runtime.php"
!! }
!! }
!! }
!! }
!! 2023-11-17T17:16:04+03:00 [critical] Uncaught Error: Class "Symfony\Bundle\MakerBundle\MakerBundle" not found
字符串
问题是,makerbundle不应该在非开发环境中。当我从composer.json文件中删除它时,它可以正常工作,但否则会导致问题。我现在应该怎么做?谢谢你的建议。
3条答案
按热度按时间f87krz0w1#
1 -安装MakerBundle:“检查MakerBundle是否安装了composer require symfony/maker-bundle --dev。这将安装MakerBundle以供开发使用。”
2 - Bundle配置:“确保MakerBundle在Pocketles.php中配置为Symfony\Bundle\MakerBundle\MakerBundle::class => Bundle 'dev' => true],用于开发环境加载。”
3 -手动清除缓存:“尝试通过删除var/cache目录手动清除该高速缓存,然后重新启动该命令。”
jtoj6r0c2#
不要在它不适用的环境中执行该脚本。相反,只在它适用的环境中执行它。
使用Composer的相应命令行标志控制脚本和插件的执行,请在您使用的Composer版本的手册中查找它们(例如
--no-plugins
和--no-scripts
,但这可能会在Composer版本和命令中发生变化)。更好的是,在不需要它们的环境中不要使用它们,这样它们就不能被执行。
只有使用正确的工具和正确的配置才能完成工作,否则就会出现问题,并让自己具备晚开始阅读所需的心态。这些都有文档记录。
ggazkfy83#
我明白了原因。原因是APP_ENV变量在测试环境中有值“dev”,因此系统试图使用MakerBundle。我用“test”更新了值,现在它按预期工作。