PHP / Composer无法重新声明

时间:2014-06-15 23:09:10

标签: php composer-php

我很高兴在我的开发环境中工作,突然间我开始收到以下错误:

  

PHP致命错误:无法在第59行的[APP_ROOT] /vendor/composer/autoload_real.php中重新声明composerRequire7a368ac394ae1d2e857becf2a235ebaa()(先前在[APP_ROOT] /vendor/composer/autoload_real.php:56中声明)

我还没有对作曲家依赖关系进行任何改动(尽管我认为我确实在那个时间段内某处做了composer update但是没有对所使用的依赖项/包进行任何更改所以没有什么大改变应该改变。

值得注意的是,当我在我的笔记本电脑上结帐回购时,我没有收到此错误,但如果我git clone一个干净的仓库,然后在我的主开发机器上composer install我就会收到此错误。因此,我假设它必须具有某些特定于机器的起源,但我对可能存在的内容缺乏想法。

非常感谢任何帮助。

  

注意:我在OSX上运行PHP 5.3.28;我的应用程序使用命名空间并且符合PSR0


另外值得注意的是,我正在运行PHPUnit 4.0.17并且在尝试运行单元测试的最初阶段触发了错误(它与单元测试无关)。这是堆栈跟踪:

0.0009     636648   1. {main}() [APP_BASE]/vendor/phpunit/phpunit/phpunit:0
0.0465    1423664   2. PHPUnit_TextUI_Command::main() [APP_BASE]/vendor/phpunit/phpunit/phpunit:54
0.0465    1424280   3. PHPUnit_TextUI_Command->run() [APP_BASE]/vendor/phpunit/phpunit/src/TextUI/Command.php:132
0.0465    1424280   4. PHPUnit_TextUI_Command->handleArguments() [APP_BASE]/vendor/phpunit/phpunit/src/TextUI/Command.php:141
0.0674    2123344   5. PHPUnit_TextUI_Command->handleBootstrap() [APP_BASE]/vendor/phpunit/phpunit/src/TextUI/Command.php:638
0.0681    2139872   6. PHPUnit_Util_Fileloader::checkAndLoad() [APP_BASE]/vendor/phpunit/phpunit/src/TextUI/Command.php:808
0.0681    2140008   7. PHPUnit_Util_Fileloader::load() [APP_BASE]/vendor/phpunit/phpunit/src/Util/Fileloader.php:77
0.0774    2144176   8. include_once('[APP_BASE]/tests/test-loader.php') [APP_BASE]/vendor/phpunit/phpunit/src/Util/Fileloader.php:93
0.0775    2146736   9. include('[APP_BASE]/vendor/autoload.php') [APP_BASE]/tests/test-loader.php:2

2 个答案:

答案 0 :(得分:8)

删除composer.lockvendor/并再次运行composer update

答案 1 :(得分:3)

当我制作现有项目目录的副本并尝试在新目录上运行phpunit时,我遇到了这个问题。最后发现,当我执行phpunit时,它已经用完了旧目录。我跑了这个:

  

哪个phpunit

看到它是从我的作曲家供应商目录中运行的:

  

/家庭/流浪/代码/ MYOLDPROJECT / API /供应商/斌/ PHPUnit的

我从新目录运行了phpunit,问题就消失了:

  

/家庭/流浪/代码/ mynewproject / API /供应商/斌/ PHPUnit的