phpStorm:realpath函数返回错误的路径

时间:2015-06-25 20:47:52

标签: php symfony phpunit

我正在使用symfony和phpunit进行测试。

我在foodmeup.dev目录中有一个项目,我将其复制到foodmeupnew.dev

现在,当从phpStorm命令行调用phpunit时,我在前一个文件夹中查找的自动加载文件有些奇怪。

请参阅以下内容,在第8行,它将foodmeupnew.dev中的dir更改为foodmeup.dev,我该如何更正?

> D:\Divers\Programmation\Web\foodmeupnew.dev\bin\phpunit.bat -c app

Fatal error: Cannot redeclare getLadybug() (previously declared in D:\Divers\Programmation\Web\foodmeupnew.dev\vendor\raulfraile\ladybug-themes\Ladybug\Plugin\Extra\Resources\php\helpers.php:12) in D:\Divers\Programmation\Web\foodmeup.dev\vendor\raulfraile\ladybug-themes\Ladybug\Plugin\Extra\Resources\php\helpers.php on line 21

Call Stack:
    0.0002     234304   1. {main}() D:\Divers\Programmation\Web\foodmeupnew.dev\vendor\phpunit\phpunit\phpunit:0
    0.0088    1457264   2. PHPUnit_TextUI_Command::main() D:\Divers\Programmation\Web\foodmeupnew.dev\vendor\phpunit\phpunit\phpunit:36
    0.0088    1463816   3. PHPUnit_TextUI_Command->run() D:\Divers\Programmation\Web\foodmeupnew.dev\vendor\phpunit\phpunit\src\TextUI\Command.php:99
    0.0088    1466536   4. PHPUnit_TextUI_Command->handleArguments() D:\Divers\Programmation\Web\foodmeupnew.dev\vendor\phpunit\phpunit\src\TextUI\Command.php:109
    0.0132    2056112   5. PHPUnit_TextUI_Command->handleBootstrap() D:\Divers\Programmation\Web\foodmeupnew.dev\vendor\phpunit\phpunit\src\TextUI\Command.php:575
    0.0134    2065160   6. PHPUnit_Util_Fileloader::checkAndLoad() D:\Divers\Programmation\Web\foodmeupnew.dev\vendor\phpunit\phpunit\src\TextUI\Command.php:750
    0.0136    2065352   7. PHPUnit_Util_Fileloader::load() D:\Divers\Programmation\Web\foodmeupnew.dev\vendor\phpunit\phpunit\src\Util\Fileloader.php:36
    0.0183    3407040   8. include_once('D:\Divers\Programmation\Web\foodmeup.dev\app\bootstrap.php.cache') D:\Divers\Programmation\Web\foodmeupnew.dev\vendor\phpunit\phpunit\src\Util\Fileloader.php:52
    0.0185    3409304   9. require_once('D:\Divers\Programmation\Web\foodmeup.dev\app\autoload.php') D:\Divers\Programmation\Web\foodmeup.dev\app\bootstrap.php.cache:5
    0.0187    3411320  10. require('D:\Divers\Programmation\Web\foodmeup.dev\vendor\autoload.php') D:\Divers\Programmation\Web\foodmeup.dev\app\autoload.php:9
    0.0191    3424808  11. ComposerAutoloaderInit751ca4f7e73ded3907cdc8698c543ac6::getLoader() D:\Divers\Programmation\Web\foodmeup.dev\vendor\autoload.php:7
    0.0214    3630760  12. composerRequire751ca4f7e73ded3907cdc8698c543ac6() D:\Divers\Programmation\Web\foodmeup.dev\vendor\composer\autoload_real.php:45

编辑:

我采取了以下措施来确保foodmeup.dev没有硬编码: - 查找并替换包含隐藏文件和系统文件的每个文件的内容字符串' foodmeup.dev'由foodmeupnew.dev' - 删除整个目录,创建新目录,拉git分支,运行composer install,重置bootstrap.cache

同样的错误再次发生。我确定可能存在一些配置错误,但我可以找到它的来源。任何线索?

EDIT2

好的,我发现第5行正在加载phpunit配置,其中包含硬编码的&foodmeup.dev'值。 这种配置来自哪里......即找出

> $phpunit - D:\Divers\Programmation\Web\foodmeupnew.dev\vendor\phpunit\phpunit\src\TextUI\Command.php:566
============================================================================================================
array(
  [colors]        => string(4) "auto"
  [backupGlobals] => bool(false)
  [bootstrap]     => string(64) "D:\Divers\Programmation\Web\foodmeup.dev\app\bootstrap.php.cache"
)

编辑3

深入研究,我发现在文件D:\Divers\Programmation\Web\foodmeupnew.dev\vendor\phpunit\phpunit\src\TextUI\Command.php:566中,应用于相对路径的realpath函数会呈现不同的路径。

var_dump($this->arguments['configuration'] . '/phpunit.xml');
  

string(15)" app / phpunit.xml"

var_dump(realpath($this->arguments['configuration'] . '/phpunit.xml'));
  
    

realpath($ this-> arguments [' configuration']。' /phpunit.xml') - D:\ Divers \ Programmation \ Web \ foodmeupnew.dev \ vendor \ PHPUnit的\ PHPUnit的的\ src \文本界面\ Command.php:529     ================================================== ================================================== ================================================== ========== string(56)" D:\ Divers \ Programmation \ Web \ foodmeup.dev \ app \ phpunit.xml"

  

当从foodmeupnew.dev目录中的文件调用时,如何使用realpath函数呈现foodmeup.dev的路径?

编辑4:

我发现这是一个phpStorm问题。必须有一个全局变量来设置php函数的目录。如果我从外部命令行运行命令,则不会出现错误

0 个答案:

没有答案