2013-12-22 91 views
4

我重構了一些PHP代碼,並將其通過一系列PHPUnit類。致命錯誤:類'ZipArchive' - 使用PHPUnit時未找到

當它(通過控制檯)運行PHPUnit(3.7.28)時,出現上述致命錯誤。

PHP版本是5.4.6-1ubuntu1.4(cli)。

我知道郵編類工作,可因爲它(也可以通過控制檯)

思想/想法表示讚賞正常運行的代碼時起作用。

謝謝!

<?php 

namespace phpUnit\Test; 

Class MyTest extends \PHPUnit_Framework_TestCase 
{ 
Public Function setUp() 
    { 
    $this->zip = new ZipArchive(); 
    } 
} 
+2

這[看起來像一個模塊](http://www.php.net/manual/en/zip.installation.php)需要啓用。也許PHPUnit使用不同版本的PHP? – halfer

+0

是的,謝謝,我找到了php.ini文件,並檢查了 - zip.so不包含在其中。我已請求服務器管理員糾正此問題,我們將會看到。 – peedeeaay

+2

除了上面的代碼將永遠不會工作。除非在命名空間「phpUnit \ Test」中定義了這個類,否則你不得不寫''this-> zip = new \ ZipArchive()''。 –

回答

1

裏面一個命名空間,你有自己的完全限定類名來引用類(除功能以外)或第一導入:

$this->zip = new \ZipArchive(); 

namespace phpUnit\Test; 
use ZipArchive; 

你的「正常「代碼可能不使用名稱空間,如果它在那裏工作的話。

+0

從上面討論的l-x中,我們確定ZipArchive()沒有使用\符號完全限定, – peedeeaay

+0

沒錯,我沒有閱讀評論 –