问题描述
我有问题。 命令后
composer update
我收到错误信息
[Symfony\Component\Console\Exception\LogicException]
An option named "connection" already exists.
Script Sensio\Bundle\distributionBundle\Composer\ScriptHandler::clearCache handling the symfony-scripts event terminated with an exception
[RuntimeException]
An error occurred when executing the ""cache:clear --no-warmup"" command:
[Symfony\Component\Console\Exception\LogicException]
An option named "connection" already exists.
我做错了什么?
Exception trace:
() at C:\wamp64\www\ecommerce\vendor\symfony\symfony\src\Symfony\Component\Console\Input\InputDeFinition.PHP:232
Symfony\Component\Console\Input\InputDeFinition->addOption() at C:\wamp64\www\ecommerce\vendor\symfony\symfony\src\Symfony\Component\Console\Command\Command.PHP:384
Symfony\Component\Console\Command\Command->addOption() at C:\wamp64\www\ecommerce\vendor\doctrine\doctrine-bundle\Command\Proxy\RunsqlDoctrineCommand.PHP:24
Doctrine\Bundle\DoctrineBundle\Command\Proxy\RunsqlDoctrineCommand->configure() at C:\wamp64\www\ecommerce\vendor\symfony\symfony\src\Symfony\Component\Console\Command\Command.PHP:61
Symfony\Component\Console\Command\Command->__construct() at C:\wamp64\www\ecommerce\vendor\doctrine\dbal\lib\Doctrine\DBAL\Tools\Console\Command\RunsqlCommand.PHP:36
Doctrine\DBAL\Tools\Console\Command\RunsqlCommand->__construct() at C:\wamp64\www\ecommerce\var\cache\dev\appDevDebugProjectContainer.PHP:11355
appDevDebugProjectContainer->getDoctrine_QuerysqlCommandService() at C:\wamp64\www\ecommerce\vendor\symfony\symfony\src\Symfony\Component\DependencyInjection\Container.PHP:329
Symfony\Component\DependencyInjection\Container->get() at C:\wamp64\www\ecommerce\vendor\symfony\symfony\src\Symfony\Bundle\FrameworkBundle\Console\Application.PHP:140
Symfony\Bundle\FrameworkBundle\Console\Application->registerCommands() at C:\wamp64\www\ecommerce\vendor\symfony\symfony\src\Symfony\Bundle\FrameworkBundle\Console\Application.PHP:100
Symfony\Bundle\FrameworkBundle\Console\Application->all() at C:\wamp64\www\ecommerce\vendor\symfony\symfony\src\Symfony\Bundle\FrameworkBundle\Console\Application.PHP:64
Symfony\Bundle\FrameworkBundle\Console\Application->doRun() at C:\wamp64\www\ecommerce\vendor\symfony\symfony\src\Symfony\Component\Console\Application.PHP:122
Symfony\Component\Console\Application->run() at C:\wamp64\www\ecommerce\bin\console:27
我使用 git 获取所有项目,并且在一台计算机上全部运行,第二台未运行。
解决方法
运行带有 -vvv
标志的命令。它会告诉你哪个命令被破坏了。例如:
bin/console -vvv
我在升级 doctrine/dbal
包后遇到同样的错误。在我的情况下,RunSqlDoctrineCommand
(来自 doctrine/doctrine-bundle
包)与父 RunSqlCommand
(来自 doctrine/dbal
包)冲突。
我已经更新了 doctrine/doctrine-bundle:1.12.*
,它包含针对这种情况的修复。这解决了这样的问题。
就我而言,symfony v3.3
的某个项目在 composer install
下执行 PHP 7.4
失败,并且 PHP 7.2
说 An option named "connection" already exists.
。
经过测试的解决方案:
- 降级到
PHP 7.0
,它与SF完美配合v3.3
- 将 symfony 升级到
v3.4
,它与PHP 7.2
和7.4
完美配合。
就我而言
composer update doctrine/doctrine-bundle
谢谢 IStranger