【问题标题】:Zend_Tool CLI issues, throwing fatal errorsZend_Tool CLI 问题,抛出致命错误
【发布时间】:2010-12-06 19:49:16
【问题描述】:

在我的 Ubuntu 机器上安装 PHPUnit 之前,我认为我已经正确设置了 zf.sh。我能够毫无问题地创建一个新项目。现在,自从安装了 PHPUnit,一切都不正常了。

当我尝试创建一个测试项目时,我得到了这个:

Fatal error: Cannot redeclare class PHPUnit_Framework_TestSuite_DataProvider in /usr/share/php/PHPUnit/Framework/TestSuite/DataProvider.php on line 64

Call Stack:
0.0011     110200   1. {main}() /opt/ZendFramework/ZendFramework-1.9.3PL1-minimal/bin/zf.php:0
0.0011     110320   2. zf_main() /opt/ZendFramework/ZendFramework-1.9.3PL1-minimal/bin/zf.php:23
0.0113     685448   3. zf_run() /opt/ZendFramework/ZendFramework-1.9.3PL1-minimal/bin/zf.php:36
0.0113     685568   4. Zend_Tool_Framework_Client_Console::main() /opt/ZendFramework/ZendFramework-1.9.3PL1-minimal/bin/zf.php:214
0.0114     686044   5. Zend_Tool_Framework_Client_Abstract->dispatch() /opt/ZendFramework/ZendFramework-1.9.3PL1-minimal/library/Zend/Tool/Framework/Client/Console.php:96
0.0114     686164   6. Zend_Tool_Framework_Client_Abstract->initialize() /opt/ZendFramework/ZendFramework-1.9.3PL1-minimal/library/Zend/Tool/Framework/Client/Abstract.php:209
0.0152     866128   7. Zend_Tool_Framework_Loader_Abstract->load() /opt/ZendFramework/ZendFramework-1.9.3PL1-minimal/library/Zend/Tool/Framework/Client/Abstract.php:118
0.4374    2729116   8. include_once('/usr/share/php/PHPUnit/Framework/TestSuite/DataProvider.php') /opt/ZendFramework/ZendFramework-1.9.3PL1-minimal/library/Zend/Tool/Framework/Loader/Abstract.php:90

我需要做什么才能让它再次工作?

更新:我想我理解发生这种情况的原因。在 PHPUnit 3.4.0 中有一个与 Zend Framework 1.9.3 同名的类。 Apparently it is a known issue。但是我怎样才能解决这个问题,以便我可以再次使用 Zend_Tool 呢?我可以降级 PHPUnit 吗?这能解决问题吗?

更新:This tutorial 提到了一些关于安装差异补丁的内容。

【问题讨论】:

标签: zend-framework phpunit zend-tool


【解决方案1】:

我找到了一个临时解决方法:

  • 编辑 PHPUnit/Framework.php,靠近第 70 行:

    require 'PHPUnit/Framework/TestSuite/DataProvider.php';
    
  • 改为:

    require_once 'PHPUnit/Framework/TestSuite/DataProvider.php';
    

这可能不是长期解决方案,但它可以解决直接症状。


2009 年 11 月 20 日更新:我刚刚看到一个对 ZF 1.9 分支的提交,声称可以解决这个 issue。据推测,该修复程序将在下一个版本(1.9.6)和后续的次要版本(1.10.0 及更高版本)中。

【讨论】:

  • 酷,谢谢!更容易理解问题。很好的解释。
【解决方案2】:

另一个不需要更改任何第 3 方代码的解决方案是将 PHPUnit 文件夹复制到 include_path 之外的位置,并改为创建指向新位置的符号链接。

有关此问题的详细信息,请查看此处:Zend_Tool troubles PHPUnit

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-18
    • 2015-01-18
    • 1970-01-01
    • 2017-10-11
    • 1970-01-01
    相关资源
    最近更新 更多