Pro PHP- Patterns, Frameworks, Testing and More

(vip2019) #1
CHAPTER 7 ■ REFLECTION API^97

if(isset($inlineTagData)) {
$inlineTagData .= ' '. $addData;
} else {
$inlineTagData = $addData;
}

unset($addData);
break;

case DOCBLOCK_TEXT:
if(!isset($tagId)) {
$comments[] = $token[1];
} else {
if(array_key_exists($tagId, $tagData)) {
$tagData[$tagId] .= ' '. trim($token[1]);
} else {
$tagData[$tagId] = trim($token[1]);
}
}
break;

case DOCBLOCK_TAG:
$tagId = uniqid();
$tagNames[$tagId] = trim($token[1], '@ ');
break;
}
}

foreach($tagData as $tagId => $data) {
$tagName = $tagNames[$tagId];
if(array_key_exists($tagName, $tags)) {
if(!is_array($tags[$tagName])) {
$backupData = $tags[$tagName];
$tags[$tagName] = array();
$tags[$tagName][] = $backupData;
}
$tags[$tagName][] = $data;
} else {
$tags[$tagName] = $data;
}
}

$returnData['comments'] = $comments;
$returnData['tags'] = $tags;
$returnData['tokens'] = $tokens;

return $returnData;
}

McArthur_819-9C07.fm Page 97 Friday, February 22, 2008 8:59 AM

Free download pdf