Symfony4.4执行server:run自动触发composer require symfony/mailer如何解决
问题产生原因
- 核心入口文件被篡改:
bin/console或public/index.php文件中被额外加入了输出命令字符串、执行composer require的代码,可能是临时调试代码忘记删除、第三方异常包/扩展篡改文件导致。 - 全局事件监听器异常:项目中配置了监听控制台命令执行、HTTP请求的全局事件监听器,在事件触发时自动执行对应命令或输出命令文本。
- Symfony Flex配置异常:Flex组件开启了强制缺失依赖自动安装/提示逻辑,检测到项目中存在Mailer相关功能调用但未安装依赖时,自动触发安装命令和提示。
- 代码中存在未引入的Mailer依赖调用:项目代码里已经写了Mailer相关的逻辑,但未安装对应依赖,触发框架的依赖提示逻辑。
处理方案
- 检查核心入口文件
对比Symfony 4.4官方默认的bin/console和public/index.php代码,删除文件中多余的echo、shell_exec、exec等输出或执行composer require symfony/mailer的代码。 - 排查事件监听器
查看src/EventListener目录下的所有监听器,重点检查监听ConsoleCommandEvent(控制台命令事件)、RequestEvent(HTTP请求事件)的监听器,移除其中触发命令执行、输出命令文本的逻辑。 - 修复Symfony Flex配置
打开composer.json,检查extra.symfony节点的配置,关闭非默认的自动安装配置,也可以执行composer update symfony/flex更新到适配Symfony 4.4的最新稳定版Flex组件。 - 安装缺失依赖
如果项目确实需要使用Mailer功能,直接手动执行composer require symfony/mailer完成依赖安装,即可避免框架重复触发依赖安装提示。 - 排查IDE插件配置
临时禁用PhpStorm中安装的非官方Symfony辅助类插件,确认是否是异常插件注入了额外执行逻辑。
内容的提问来源于stack exchange,提问作者Nadim
相关产品推荐
相关产品推荐

