Reflection API не сможет сделать это сам по себе (или вообще не сможет, если это не класс).Например, с этим кодом:
<?php
$bar = array(
/** I'm foo! */
'foo' => 1,
/** I'm bar! */
'bar' => 2,
);
API Reflection здесь бесполезен (без классов, без функций).Вы по-прежнему можете получить его, используя токенизатор :
$code = file_get_contents('input.php');
$tokens = token_get_all($code);
foreach ($tokens as $key => $token) {
if (is_array($token)) {
if ($token[0] == T_DOC_COMMENT) {
for ($i=$key+1; $i<count($tokens); $i++) {
if (is_array($tokens[$i]) && $tokens[$i][0] != T_WHITESPACE) {
echo $tokens[$i][2] . ' = '.$token[1].PHP_EOL;
break;
}
}
} /* T_DOC_COMMENT */
}
}
. Это выведет:
'foo' = /** I'm foo! */
'bar' = /** I'm bar! */
Однако, имейте в виду, что это сделано наочень маленький пример .Если вы хотите разобрать полный PHP-файл (с классами, функциями и т. Д.), вас ждет непростая поездка .
В заключение, возможно, ноэто требует много работы и очень подвержено ошибкам.Я бы не рекомендовал это. может быть реальным парсером PHP, который существует , но я никогда не использовал его, поэтому не могу сказать.