How to parse doc comments

2019-09-01 03:17发布

问题:

I'm using reflection to get the doc comment from a method: http://www.php.net/manual/en/reflectionclass.getdoccomment.php, which looks like this:

   /** 
    * Method description
    *
    * @param  array $foo    Bla bla
    * @return string        More bla bla
    */

How can I parse this string into something that I can work with? I need to extract the "Method description" text from it. The other stuff is not important to me, because I can use other reflection methods to get the parameters etc.

回答1:

trim(str_replace(array('/', '*'), '', substr($rc->getDocComment(), 0, strpos($rc->getDocComment(), '@'))));

Assuming the comments are always in that format.



回答2:

I've not had much experience with parsing comments, however, treating this as a string, what I'd do is:

  1. Explode by new lines:
  2. trim spaces and * out

Something like this:

<?php

$string = "   /** 
    * Method description
    *
    * @param  array $foo    Bla bla
    * @return string        More bla bla
    */";

$parts = explode("\n",$string);
$comment = trim($parts[1]," *");
echo $comment; // will echo "Method description"

However, probably isn't ideal as the description might be on more than one line.