【发布时间】:2014-06-15 23:09:09
【问题描述】:
我在我的开发环境中愉快地工作,突然我开始收到以下错误:
PHP 致命错误:无法在第 59 行的 [APP_ROOT]/vendor/composer/autoload_real.php 中重新声明 composerRequire7a368ac394ae1d2e857becf2a235ebaa()(之前在 [APP_ROOT]/vendor/composer/autoload_real.php:56 中声明)
我没有在作曲家依赖项中进行任何更改(尽管我认为我确实在那个时间范围内的某个地方做了composer update,但没有更改使用的依赖项/包,所以没有什么大的改变。
值得注意的是,当我在笔记本电脑上签出 repo 时,我没有收到此错误,但如果我 git clone 一个干净的 repo 然后 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
【问题讨论】:
-
那么
autoload_real第 56 行和第 59 行是什么? -
这只是作曲家的默认自动加载文件......我认为你的会和我的一样,但如果不是......第 56 行是函数定义
function composerRequireb319f8584bff24b05e527f91a6f7f8bf($file),第 59 行是此函数的右括号,其中函数的唯一行是要求传入的文件。 -
那么请把它放在pastebin.com上。并确保您查看的是正确的文件 - 我几乎不怀疑右括号可能会导致这样的问题。
-
检查哪些代码加载了
autoload_real.php文件。它必须只运行一次,而您的代码会运行多次
标签: php composer-php