/** * Return a single property by given name or index of info * * @param string|int $propertyNameOrInfoIndex * @throws Exception\InvalidArgumentException * @return bool|PropertyScanner */ public function getProperty($propertyNameOrInfoIndex) { if ($this->classScanner->hasProperty($propertyNameOrInfoIndex)) { return $this->classScanner->getProperty($propertyNameOrInfoIndex); } foreach ($this->parentClassScanners as $pClassScanner) { if ($pClassScanner->hasProperty($propertyNameOrInfoIndex)) { return $pClassScanner->getProperty($propertyNameOrInfoIndex); } } throw new Exception\InvalidArgumentException(sprintf('Property %s not found in %s', $propertyNameOrInfoIndex, $this->classScanner->getName())); }