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

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

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

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

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

Мой вопрос:

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

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

ИЗМЕНИТЬ Дополнительная информация: Каждый из моих файлов имеет следующий docblock из строки 1 файла:

<?php 
    /**
     * Short Description
     *
     * Long Description
     *
     * @package      Some Package
     * @subpackage   Some Subpackage
     * @category     Some Category
     * @author       F Bloggs <[email protected]>
     */
?>

Ответ 1

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

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

Ответ 2

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

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

<?php
/**
 * Class Category | core/Category.class.php
 *
 * @package     MyApp XYZ
 * @subpackage  Categories
 * @author      Sandro Miguel Marques <[email protected]>
 * @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 {

    ...

Ответ 3

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

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

Если полученная вами ошибка находится в строке 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. Если я узнаю, как исправить код, чтобы остановить ложную ошибку (или исправить комментарии, чтобы убедиться, что ошибка не указана для регистрации), я отправлю ее здесь.

Ответ 4

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

phpdoc -d ./ -t ./docs --ignore=vendor/*
Параметры

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

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

Ответ 5

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

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

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