我很高兴在我的开发环境中工作,突然间我开始收到以下错误:
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
答案 0 :(得分:8)
删除composer.lock
和vendor/
并再次运行composer update
。
答案 1 :(得分:3)
当我制作现有项目目录的副本并尝试在新目录上运行phpunit时,我遇到了这个问题。最后发现,当我执行phpunit时,它已经用完了旧目录。我跑了这个:
哪个phpunit
看到它是从我的作曲家供应商目录中运行的:
/家庭/流浪/代码/ MYOLDPROJECT / API /供应商/斌/ PHPUnit的
我从新目录运行了phpunit,问题就消失了:
/家庭/流浪/代码/ mynewproject / API /供应商/斌/ PHPUnit的