예제 #1
0
 /**
  * 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;
 }