尝试使用composer.phar更新供应商时,我遇到以下致命错误:
$ php bin/composer.phar update
Loading composer repositories with package information
Updating dependencies (including require-dev)
Generating autoload files
Fatal error: Interface 'Metadata\AdvancedMetadataFactoryInterface' not found in /sf2path/vendor/jms/metadata/src/Metadata/MetadataFactory.php on line 26
PHP Fatal error: Interface 'Metadata\AdvancedMetadataFactoryInterface' not found in /sf2path/vendor/jms/metadata/src/Metadata/MetadataFactory.php on line 26
Script Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::clearCache handling the post-update-cmd event terminated with an exception
[RuntimeException]
An error occurred when executing the "'cache:clear --no-warmup'" command.
昨天我创建了一个干净的安装,它在我的家用机器上工作。我还为典型的symfony目录(app / cache,web,vendor ...)添加了一个.gitignore文件:
/web/bundles/
/app/bootstrap*
/app/cache/*
/app/logs/*
/vendor/
/app/config/parameters.yml
现在当从存储库中取出时,我显然错过了供应商,所以我认为我只是更新它们,但现在我收到了上述错误。
这是我的composer.json:
"require": {
...
"jms/metadata": "*",
"fpn/doctrine-extensions-taggable": "dev-master",
"fpn/tag-bundle": "dev-master",
"jms/serializer-bundle": "dev-master",
"friendsofsymfony/rest-bundle": "dev-master",
"friendsofsymfony/user-bundle": "*",
"friendsofsymfony/comment-bundle": "*"
},
谷歌并没有真正帮助,所以也许这里的任何人都有同样的问题,并找到了解决方案。
答案 0 :(得分:0)
我不知道我是如何搞砸我的供应商的。我认为一旦安装它们现在可以在每台机器上运行,但无论如何它似乎都有问题。在从Git存储库中包含缺少的类之后,我遇到了另一个缺少Twig类的问题,所以我搞砸了一切并重新安装了所有供应商。 也许我应该删除问题,因为这么简单,但可能有其他人可能会寻找它 - 所以这是简单的答案:
删除所有供应商(如果有)并重新安装:
$php composer.phar install
这将启动所有供应商的全新安装。 (在我的情况下,我只做了更新)