致命错误:找不到接口'Metadata \ AdvancedMetadataFactoryInterface'

时间:2013-04-17 06:08:02

标签: php symfony composer-php

尝试使用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": "*"
},

谷歌并没有真正帮助,所以也许这里的任何人都有同样的问题,并找到了解决方案。

1 个答案:

答案 0 :(得分:0)

我不知道我是如何搞砸我的供应商的。我认为一旦安装它们现在可以在每台机器上运行,但无论如何它似乎都有问题。在从Git存储库中包含缺少的类之后,我遇到了另一个缺少Twig类的问题,所以我搞砸了一切并重新安装了所有供应商。 也许我应该删除问题,因为这么简单,但可能有其他人可能会寻找它 - 所以这是简单的答案:

删除所有供应商(如果有)并重新安装:

$php composer.phar install

这将启动所有供应商的全新安装。 (在我的情况下,我只做了更新)