2013-12-22 2 views
4

Я отредактировал некоторый PHP-код и пропустил его через ряд классов PHPUnit.Неустранимая ошибка: Class 'ZipArchive' - не найден при использовании PHPUnit

Я получаю приведенную выше Fatal Error при запуске PHPUnit (3.7.28) на ней (через консоль).

PHP-версия 5.4.6-1ubuntu1.4 (cli).

Я знаю, класс Zip работает и доступен, как она работает при выполнении кода в обычном режиме (также через консоль)

Мысли/идеи оценили.

Спасибо!

<?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

Кроме того, ваш код выше никогда не будет работать. Вам нужно написать '' $ this-> zip = new \ ZipArchive() '', если этот класс не определен в пространстве имен '' phpUnit \ Test''. –

ответ

1

Внутри пространства имен, вы должны ссылаться на классы (кроме функций) с их полным именем класса или импортировать их первым:

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

или

namespace phpUnit\Test; 
use ZipArchive; 

Ваш «нормальный «код, вероятно, не использует пространства имен, если он там работает.

+0

Из вышеприведенного обсуждения с l-x мы установили, что ZipArchive() не был полностью квалифицирован с использованием символа \, – peedeeaay

+0

Вправо, я не читал комментарии –

Смежные вопросы