phpDocumentor @пример использования


Кажется, я не могу понять, как заставить теги PHPCocumentor2 @example работать правильно.

Я пытаюсь проанализировать один файл. Мой рабочий каталог /home/developers/domains/example.com, и я пытаюсь проанализировать (относительно моего рабочего каталога) simplesamlphp/modules/example/lib/Auth/Process/RoleTrigger.php. Этот файл класса содержит документ, который выглядит следующим образом:

/**
 * Trigger Role on User from Configuration.
 *
 * @example "RoleManager.usage.example.php" Test Example
 */
public function process() { /* ... */ }

Когда я запускаю команду для разбора только этого файла с максимальной подробностью (phpdoc -f simplesamlphp/modules/example/lib/Auth/Process/RoleTrigger.php -t httpdocs/test -vvv) PHPDoc указывает, что текущий корневой каталог проекта /home/developers/domains/example.com/simplesamlphp/modules/example/lib/Auth/Process/, поэтому, согласно документации, это указывает, что файл примера RoleManager.usage.example.php должен находиться либо на том же уровне каталога анализируемого файла, либо в каталоге examples текущего корневого каталога проекта (который будет /home/developers/domains/example.com/simplesamlphp/modules/example/lib/Auth/Process/examples/).

Однако, как бы я ни старался, я, похоже, не могу заставить пример отображаться в сгенерированной документации.

Все, что я, кажется, получаю, это в правой части сгенерированной страницы:

Tags
example     Test Example

Без гиперссылки, или отображения содержимого файла, или чего-либо еще. Просто "Описание" ни с чем другим.

Я попытался использовать <code>, но несколько строк с несколькими уровнями отображают неработающий html, который также бесполезен:

Это:

/**
 * Test Doc
 *
 * <code>
 * <?php
 * $array = array(
 *     1 => 'one',
 *     2 => 'two',
 * );
 * print_r($array);
 * ?>
 * </code>
 */

Отображает следующий HTML-код:

<p><code>
&lt;?php
$array = array(</p>
<pre><code>1 =&gt; 'one',
2 =&gt; 'two',</code></pre>
<p>);
print_r($array);
?>
</code></p>

Несколько вложенных <code> и <pre> тегов, которые отображают что-то ужасное. Но это уже другой вопрос.

Author: Mike, 2014-04-17

1 answers

Когда я впервые опубликовал этот вопрос, оказалось, что тег @example не был реализован (пока) в phpDocumentor v2. Это печальная правда для ряда тегов, поскольку phpDocumentor v2 построен на совершенно иной основе, чем v1, и теги были/все еще переносятся в новую систему.

Вскоре после того, как я опубликовал вопрос, я связался с сообществом Git, работающим над проектом, и внес небольшой вклад в задачу реализации @example метка.

В настоящее время тег работает так, как ожидалось и определено в документации PHPDoc, до T (насколько я могу проверить).

Http://www.phpdoc.org/docs/latest/references/phpdoc/tags/example.html

Мне приходит в голову, что, поскольку теперь это работает должным образом, этот вопрос (и ответ), скорее всего, больше не нужны. Однако я хотел убедиться, что обновил его, чтобы кто-нибудь не наткнулся на него и не запутался.

Для полноты картины, во время при написании синтаксис выполняется следующим образом:

/**
 * @example [location] [<start-line> [<number-of-lines>] ] [<description>]
 */

/**
 * Or inline {@example [location] [<start-line> [<number-of-lines>] ] [<description>]}
 */
 3
Author: Mike, 2015-05-12 19:51:34