PHP/Composer无法重新声明

ken*_*ken 6 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
Run Code Online (Sandbox Code Playgroud)

Mik*_*ael 8

删除composer.lock并重新vendor/运行composer update.


小智 3

当我复制现有项目目录并尝试在新目录上运行 phpunit 时,我遇到了这个问题。最后发现当我执行 phpunit 时,它是从旧目录中运行出来的。我跑了这个:

哪个 phpunit

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

/home/vagrant/Code/MYOLDPROJECT/api/vendor/bin/phpunit

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

/home/vagrant/Code/mynewproject/api/vendor/bin/phpunit