How to parse doc comments

2019-09-01 03:18发布

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.

2条回答
太酷不给撩
2楼-- · 2019-09-01 03:49
trim(str_replace(array('/', '*'), '', substr($rc->getDocComment(), 0, strpos($rc->getDocComment(), '@'))));

Assuming the comments are always in that format.

查看更多
迷人小祖宗
3楼-- · 2019-09-01 03:53

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.

查看更多
登录 后发表回答