protected function parseLines()
{
$lines = [];
foreach ($this->lines as $line) {
if (preg_match('#^@(param|return|var) +(.*)$#', $line, $matches) === 0) {
$lines[] = $line;
} else {
list(, $docType, $tokens) = $matches;
$tokens = preg_split('/\\s+/', $tokens, 3);
$type = $tokens[0];
if ($docType == 'var' && $this->shortcutName == 'set') {
$docType = 'param';
$name = array_keys($this->parameters);
$name = $name[0];
} elseif ($docType == 'var' && $this->shortcutName == 'get') {
$docType = 'return';
} else {
$name = isset($tokens[1]) ? '$' . $tokens[1] : '';
}
// TODO: there must be a better way
if (strpos($type, 'Phalcon\\') === 0) {
$type = str_replace('Phalcon\\', '\\Phalcon\\', $type);
}
$description = isset($tokens[2]) ? $tokens[2] : '';
switch ($docType) {
case 'param':
$this->parameters[$name] = array($type, $description);
break;
case 'return':
$this->return = array($type, $description);
break;
}
}
}
$this->lines = $lines;
}