PHPコードのブロックをPHPDocDocBlockに入れるにはどうすればよいですか

2012年07月31日に質問されました。  ·  閲覧回数 11.9k回  ·  ソース

Mark Locker picture
2012年07月31日

私はPHPDocで遊んでいて、マークダウンを使用してDocBlockにフォーマットを追加できることに気づきました。 特に、バックティックを使用してインラインコードを強調表示できることに気付きました。

ただし、4つのスペースを使用すると機能しないように見えるため、コードのブロックをDocBlockに追加する方法がわからないようです。

<code><pre>も使用してみましたが、これらのタグは生成されたドキュメントに表示されますが、その中のコードはHTMLコメントでコメント化されます。

たとえば、次のDocBlock:

/**
 * This is a test DocBlock
 *
 * <pre>
 *     <?php
 *         echo('hi');
 *     ?>
 * </pre>
 *
 * @return object[] An array of objects.
 */

このHTMLを生成します:

<pre>
    <!--?php echo('hi'); ?-->
</pre>

どこが間違っているのですか? コードのブロックをDocBlockに追加するにはどうすればよいですか?

回答

Mat-Locomotive picture
2014年04月03日
29

phpdocumentorはマークダウンのgithubバリアントを使用します。

コードを追加する適切な方法は次のとおりです。

/**
 * This is a test DocBlock
 *
 * ```php
 * echo('hi');
 * ```
 *
 * @return ...
 */
Gerard Roche picture
2016年10月14日
16

phpDocumentorのマニュアルは、説明のためにそれを言います

Markdown 、より具体的にはGithubフレーバーのMarkdownに従ってテキストをフォーマットできます。 この形式を使用すると、テキストを太字にしたり、インラインコード例を追加したり、他のサイトへのリンクを簡単に生成したりするのが簡単です。 —DocBlocks内

PSR-5PHPDoc説明のために言います

説明を解析するアプリケーションは、このフィールドのマークダウンマークアップ言語をサポートすることをお勧めします。これにより、作成者は、コード例を表現するためのフォーマットと明確な方法を提供できます。 —説明

そしてそのタグ

書式設定言語としてMarkdownをサポートする必要があります。 Markdownの性質上、同じ行または後続の行でタグの説明を開始し、同じ方法で解釈することは合法です。 —タグ

Github-FlavouredMarkdownを使用したPHPDocの例

/**
 * This is a Summary.
 *
 * This is a Description. It may span multiple lines
 * or contain 'code' examples using the _Markdown_ markup
 * language.
 *
 * It's very easy to make some words **bold** and other 
 * words *italic* with Markdown. You can even 
 * [link to Google!](http://google.com).
 *
 * Here's an example of how you can use syntax 
 * highlighting with GitHub Flavored Markdown:
 *
 * ```
 * <?php
 * echo "Hello, world.";
 * ?>
 * ```
 * 
 * You can also simply indent your code by four spaces:
 * 
 *     <?php
 *     echo "Hello, world.";
 *     ?>
 *
 * @see Markdown
 *
 * @param int        $parameter1 A parameter description.
 * @param \Exception $e          Another parameter description.
 *
 * @\Doctrine\Orm\Mapper\Entity()
 *
 * @return string
 */
function test($parameter1, $e)
{
    ...
}
Kasia Gogolek picture
2012年07月31日
11

<?phpタグを追加する必要はないと思います。解析時にタグが削除されると思います。 phpdocとして見ると、おそらく一緒にスキップできます。

試す

 * <code>
 *         echo('hi');
 * </code>
Mez picture
2012年07月31日
2

次を使用できるはずです:-

/**
 * This is a test DocBlock
 *
 * <pre>
 *     &lt;?php
 *         echo('hi');
 *     ?&gt;
 * </pre>
 *
 * @return object[] An array of objects.
 */