Файл PHPDox не найден

Я пытался запустить phpdox на сервере Windows 2012, но получаю сообщение об ошибке:

PHP Version: 7.0.5 (WINNT)
PHPDox Version: 0.8.1.1
Exception: TheSeer\phpDox\Generator\TokenFileException (Code: 1)
Location: phar://D:/htdocs/AscPro/bin/phpdox-0.8.1.1.phar/phpdox/generator/pro
ject/TokenFile.php (Line 19)

File 'file:/D:/htdocs/AscPro/build/phpdox/tokens/AppBundle/AppBundle.php.xml'
not found

Я проверил местоположение, файл не пропал. Я столкнулся с этой проблемой в процессе непрерывной интеграции с jenkins. Это очень странно, потому что та же самая версия phpdox работала у меня на ubuntu. Может быть, это связано с тем, что все программы лежат на "C:", включая Jenkins, но рабочая область jenkins лежит на "D:"?


person user3746259    schedule 26.04.2016    source источник


Ответы (2)


Думаю, проблема в неправильном использовании пути WINDOWS. См. Этот вопрос:

Справка по пути в Windows - PHP

В качестве быстрой проверки попробуйте изменить file_exists проверку на зашифрованный аргумент:

file:///C:\htdocs\AscPro\build\phpdox\tokens\AppBundle\AppBundle.php.xml

person Jehy    schedule 10.05.2016
comment
Я не понимаю вашего ответа на вопрос phpdox. Я не могу изменить их код. - person user3746259; 17.05.2016
comment
@ user3746259 Конечно, можно! - person Jehy; 18.05.2016

Боюсь, это ошибка phpdox.

Phpdox преобразует все пути в стиль unix перед проверкой существования.

Вы можете увидеть этот код здесь.

Возможно, вы сможете взломать функцию, существует

заменить: return file_exists($this->getPathname());

to: return file_exists(parent::getPathname());

person whitediver    schedule 04.05.2016
comment
Нет ли обходного пути? Могу ли я как-то переопределить класс fileinfo пакета? Или есть какие-либо эквивалентные инструменты, которые генерируют документы, такие как phpdox, и работают на сервере Windows? - person user3746259; 04.05.2016
comment
Добавить как взломать существующую функцию. Форматирование комментариев очень плохое. - person whitediver; 05.05.2016
comment
Не могу согласиться, поскольку file_exists с / работает одинаково в Unix и Windows, за исключением имен каталогов, но это не случай, связанный с каталогом. - person yergo; 11.05.2016
comment
Это тоже мой вывод, но я все еще не мог найти ответа, почему phpdox не работает в Windows. - person user3746259; 17.05.2016