Wie füge ich PHP-Codeblöcke in einen PHPDoc DocBlock ein

Lesezeit: 2 Minuten

Ich spiele mit PHPDoc herum und habe festgestellt, dass Sie Markdown verwenden können, um einem DocBlock einige Formatierungen hinzuzufügen. Insbesondere fällt mir auf, dass Sie Backticks verwenden können, um Inline-Code hervorzuheben.

Ich kann jedoch nicht herausfinden, wie Codeblöcke zu einem DocBlock hinzugefügt werden, da die Verwendung von 4 Leerzeichen nicht zu funktionieren scheint.

Ich habe versucht, mit <code> und <pre> auch, und obwohl diese Tags in der generierten Dokumentation erscheinen, wird der Code darin mit HTML-Kommentaren auskommentiert.

Zum Beispiel dieser DocBlock:

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

Erzeugt dieses HTML:

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

Wo gehe ich falsch? Wie kann ich meinem DocBlock einen Codeblock hinzufügen?

  • Hast du es mal mit versucht &lt; und &gt; Anstatt von < und >?

    – Eric Finn

    31. Juli 2012 um 13:36 Uhr


  • Die Dokumentation besagt, dass dies die korrekte Verwendung ist manual.phpdoc.org/HTMLSmartyConverter/PHP/phpDocumentor/…

    – Mike B

    31. Juli 2012 um 13:38 Uhr

  • @MikeB Interessant, dass der Link darauf hindeutet, dass es funktionieren sollte … es ist etwas umständlich zu verwenden &lt; und &gt; die ganze Zeit … Sicherlich könnte / sollte PHPDoc diese für mich konvertieren?

    – Schließfach markieren

    31. Juli 2012 um 13:42 Uhr

  • @MarkLocker Odd – Ich sehe auch, was Sie sehen. Ich verwende PHPDocumentor 2.0.0a3

    – Mike B

    31. Juli 2012 um 13:51 Uhr


  • In meiner eigenen Verwendung würde ich mit Kasia gehen und die öffnenden/schließenden PHP-Tags nicht verwenden, da der Kontext der -Blöcke klar genug sein sollte. Die Methode von Mez, das Textäquivalent der Tags zu haben, sollte ebenfalls funktionieren und jede Parser-Verwirrung vermeiden, indem die wörtlichen Tag-Zeichen verwendet werden. Etwas, das ich nicht versucht habe, wäre die Verwendung von Doppelzeichen (<>), um zu sehen, ob sie funktionieren, analog dazu, wie "<>" verwendet werden kann, um ein wörtliches "" (manual.phpdoc.org/HTMLSmartyConverter/HandS/phpDocumentor/…)

    – ashnazg

    31. Juli 2012 um 19:48 Uhr

Benutzer-Avatar
Mat-Lokomotive

phpdocumentor verwendet die Github-Variante von markdown.

Der richtige Weg, Code hinzuzufügen, ist dann:

/**
 * This is a test DocBlock
 *
 * ```php
 * echo('hi');
 * ```
 *
 * @return ...
 */

Das phpDocumentor-Handbuch sagt das für Beschreibungen

Sie können Ihren Text entsprechend formatieren Abschlaggenauer Markdown mit Github-Geschmack. Mit diesem Format ist es einfach, Ihren Text fett zu machen, Inline-Codebeispiele hinzuzufügen oder einfach Links zu anderen Websites zu generieren. — Innerhalb von DocBlocks

Das PSR-5 PHPDoc sagt für Beschreibungen

Jede Anwendung, die die Beschreibung parst, wird EMPFOHLEN, die Markdown-Auszeichnungssprache für dieses Feld zu unterstützen, damit der Autor eine Formatierung und eine klare Darstellung von Codebeispielen bereitstellen kann. — Beschreibung

Und das Stichworte

MUSS Markdown als Formatierungssprache unterstützen. Aufgrund der Natur von Markdown ist es zulässig, die Beschreibung des Tags in derselben oder der nachfolgenden Zeile zu beginnen und auf dieselbe Weise zu interpretieren. — Schild

Beispiel für PHPDoc mit Github-Flavoured Markdown

/**
 * 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)
{
    ...
}

  • Nicht, dass das OP nach Eclipse gefragt hätte, aber ich werde bemerken, dass Eclipse-PDT Neon den Abschlag nicht zu berücksichtigen scheint. Schade, denn Markdown ist inline besser lesbar als ein Haufen HTML-Tags.

    – schwaches Signal

    5. Dezember 2016 um 15:31 Uhr

  • Sehr schön, dass diese Antwort die Dokumentation und mehrere Beispiele der Syntax zitiert. Ich hoffe, diese Antwort erhält genug Stimmen, um die beste Antwort zu werden. Nach einer solchen Bestätigung habe ich im Juni 2016 gesucht.

    – Herr Lance E. Sloan

    1. März 2017 um 17:59 Uhr


  • Schätzen Sie die Beispiele. Ich wusste nicht, dass der 4-Leerzeichen-Einzug war nach einem Leerzeichen nach dem Sternchen.

    – Tim Morton

    20. März 2017 um 21:21 Uhr

Ich denke nicht, dass Sie das hinzufügen sollten <?php -Tag, würde ich davon ausgehen, dass es beim Parsen entfernt wird. Da es sich um phpdoc handelt, können Sie es wahrscheinlich ganz überspringen.

Versuchen

 * <code>
 *         echo('hi');
 * </code>

Sie sollten in der Lage sein, Folgendes zu verwenden: -

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

1176110cookie-checkWie füge ich PHP-Codeblöcke in einen PHPDoc DocBlock ein

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy