Merge pull request #88 from docteurklein/recursive_parsing

avoid infinite recursion when parsing jms metadata
This commit is contained in:
Jordi Boggiano 2012-10-24 02:18:12 -07:00
commit 1ba258e624

View File

@ -30,6 +30,8 @@ class JmsMetadataParser implements ParserInterface
*/
private $commentExtractor;
private $parsedClasses = array();
/**
* Constructor, requires JMS Metadata factory
*/
@ -82,12 +84,19 @@ class JmsMetadataParser implements ParserInterface
'readonly' => $item->readOnly
);
// if class already parsed, continue, to avoid infinite recursion
if (in_array($dataType['class'], $this->parsedClasses)) {
continue;
}
//check for nested classes with JMS metadata
if ($dataType['class'] && null !== $this->factory->getMetadataForClass($dataType['class'])) {
$this->parsedClasses[] = $dataType['class'];
$params[$name]['children'] = $this->parse($dataType['class']);
}
}
}
$this->parsedClasses = array();
return $params;
}