Phpdoc Нет записей для этого файла

Я установил phpDoc на наш сервер, настроил и т. Д. Он корректно обрабатывает документацию. Мы используем шаблон «Отзывчивый», однако эта ошибка возникает независимо от используемого шаблона.

В разделе «Ошибки» каждый сканируемый файл имеет следующую ошибку:

Type Line Description error 0 No summary was found for this file 

Я для этого исчерпывающе искал и не могу найти решение. Я даже попытался отслеживать код ошибки сервера за сообщением PPC:ERR-50000 и попытаться отследить состояние, вызывающее ошибку, но немного потерянное.

Мой вопрос:

Что означает эта ошибка? Почему это на линии 0, и как, черт возьми, я избавлюсь от него ?! Даже если я правильно сделал док-блок, могу ли я скрыть эту ошибку? Мой безошибочный ocd сходит с ума!

Большое спасибо

EDIT Дополнительная информация: Каждый из моих файлов имеет следующий docblock из строки 1 файла:

 <?php /** * Short Description * * Long Description * * @package Some Package * @subpackage Some Subpackage * @category Some Category * @author F Bloggs <gbloggs@email.com> */ ?> 

Solutions Collecting From Web of "Phpdoc Нет записей для этого файла"

Но есть ли в верхней части вашего файла два таких докблока? Предполагается, что первый docblock будет одним из файлов самого файла, а второй docblock должен соединиться с первым документируемым элементом кода, который появляется после него.

Однако, если у вас есть только один док-блок в верхней части файла, он будет сопряжен с первым найденным элементом кода, таким образом, «сам файл», похоже, будет потерять свой док-блок. Это то, что должна указывать эта ошибка.

@ashnazg прав, но я хочу улучшить ваш ответ на примере.

DocBlock на уровне файлов должен быть первым докблоком и должен иметь сводку (в этом примере сводка – « Категория класса | core / Category.class.php »). Затем перед определением класса помещается класс DocBlock класса.

 <?php /** * Class Category | core/Category.class.php * * @package MyApp XYZ * @subpackage Categories * @author Sandro Miguel Marques <sandromiguel@something.com> * @version v.1.1 (06/12/2016) * @copyright Copyright (c) 2016, Sandro */ namespace Myapp; use \PDO; use \Exception; use \PDOException; /** * Class Category - active record * * Recipe categories */ class Category { ... 

Поэтому после большого поиска на сервере у меня есть полуфикс для проблемы, если кто-то еще столкнется с той же проблемой.

Я узнал, как скрыть ошибку из документации, но не то, что ее вызывает.

Если ошибка, которую вы получаете, находится в строке 0 и не найдена для этого файла, вам необходимо будет отредактировать следующий файл:

 phpDocumentor/src/phpDocumentor/Plugin/Core/Transformer/Writer/xml.php 

Затем вам нужно будет искать защищенный метод: createErrorEntry()

Вот как выглядит существующий метод:

 protected function createErrorEntry($error, $parse_errors) { $marker_obj = new \DOMElement(strtolower($error->getSeverity())); $parse_errors->appendChild($marker_obj); $message = ($this->getTranslator()) ? vsprintf($this->getTranslator()->translate($error->getCode()), $error->getContext()) : $error->getCode(); $marker_obj->appendChild(new \DOMText($message)); $marker_obj->setAttribute('line', $error->getLine()); $marker_obj->setAttribute('code', $error->getCode()); } 

Этот метод должен иметь условие IF . Оберните весь кусок метода в следующем условии IF:

 protected function createErrorEntry($error, $parse_errors) { if($error->getCode()!=='PPC:ERR-50000') { $marker_obj = new \DOMElement(strtolower($error->getSeverity())); $parse_errors->appendChild($marker_obj); $message = ($this->getTranslator()) ? vsprintf($this->getTranslator()->translate($error->getCode()), $error->getContext()) : $error->getCode(); $marker_obj->appendChild(new \DOMText($message)); $marker_obj->setAttribute('line', $error->getLine()); $marker_obj->setAttribute('code', $error->getCode()); } } 

Это остановит запись ошибки, по сути, она скрывает ошибку от конечного пользователя, она не исправляет то, что я могу только предположить, это ошибка в phpDocumentor. Таким образом, первоначальная ошибка все еще существует, она просто не записана.

Одна вещь, которую я заметил при отладке, – это функция vsprintf() создает ошибку для ошибки PPC: ERR-50000. vsprintf() создает ошибку PHP Warning: vsprintf(): Too few arguments . Если я узнаю, как исправить код, чтобы остановить ложную ошибку (или исправить комментарии, чтобы убедиться, что ошибка не указана для регистрации), я отправлю ее здесь.

Для чего это стоит, я обнаружил, что создание документации из командной строки с использованием параметров, а не с использованием параметров в:

 phpdoc -d ./ -t ./docs --ignore=vendor/* 

vs в файле конфигурации phpdoc.dist.xml устранены все проблемы, возникающие в этом потоке.

Я не думаю, что это останавливает необходимость в двух док-блоках в верхней части файлов, но, похоже, для устранения ошибки «Нет резюме было найдено для этого файла» при создании документации.

Я получил то же сообщение об ошибке. Я избавился от этого.

решение очень простое. в верхнем блоке файла сводная строка имеет период в конце. Это указывает на сводную строку.

убедитесь, что никакие другие блоки, которые следуют за атрибутами или методами или что-то еще, имеют итоговую строку с периодом в конце. Как только я удалил их, ошибка немедленно исчезла (PHPDocumentor 2.8.5)