/** * Returns the string object class name of $property on $instanceOrClassName - or NULL if target $property is not of type object. * * @param mixed $instanceOrClassName * @param string $propertyName * @return string|NULL */ protected function assertTargetInstanceClassName($instanceOrClassName, $propertyName) { $className = TRUE === is_object($instanceOrClassName) ? get_class($instanceOrClassName) : $instanceOrClassName; $type = $this->reflectionService->getPropertyTagValues($className, $propertyName, 'var'); $bracketPosition = strpos($type, '<'); if (FALSE !== $bracketPosition) { $type = substr($type, $bracketPosition + 1); $type = substr($type, 0, -1); } $squareBracketPosition = strpos($type, '['); if (FALSE !== $squareBracketPosition) { $type = substr($type, 0, $squareBracketPosition); } return class_exists($type) ? $type : NULL; }