PHPでannotation切り出し(超お気楽版)
$classInfo = new ReflectionClass("Meta2User"); $doc = $classInfo->getDocComment(); $doc = mb_ereg_replace("(\*|\/|\r|\n)", "", $doc); $anno = array(); mb_ereg_search_init($doc); $pos= mb_ereg_search_pos("@\w"); if($pos ===false){ echo "no annotation found"; } else{ $position = $pos[0]; $end = mb_strlen($doc); while($position < $end){ mb_ereg_search_setpos($position + 1); $pos= mb_ereg_search_pos("@\w"); if($pos === false){ $anno[] = mb_substr($doc, $position); break; } $anno[] = mb_substr($doc, $position,$pos[0] - $position); $position = $pos[0]; } } foreach($anno as $a){ echo $a; echo "<br />"; }
"*" と "/" と改行を削除し、@Hogeのような文字列が見つかったらそこから次の@までをひとつのannotationとする。
@Entity(table="users",key="user_id")見たいなやつは上で探した要素ごとに解析すれば良い。
でもお気楽版なのでこれでいいのか?は不明。