getName()); unset($phpReflection); return $zendReflection; } /** * Get class reflection object * * @return ClassReflection */ public function getClass() { $phpReflection = parent::getClass(); if ($phpReflection == null) { return null; } $zendReflection = new ClassReflection($phpReflection->getName()); unset($phpReflection); return $zendReflection; } /** * Get declaring function reflection object * * @return FunctionReflection|MethodReflection */ public function getDeclaringFunction() { $phpReflection = parent::getDeclaringFunction(); if ($phpReflection instanceof \ReflectionMethod) { $zendReflection = new MethodReflection($this->getDeclaringClass()->getName(), $phpReflection->getName()); } else { $zendReflection = new FunctionReflection($phpReflection->getName()); } unset($phpReflection); return $zendReflection; } /** * Get parameter type * * @return string */ public function getType() { if ($this->isArray()) { return 'array'; } elseif (method_exists($this, 'isCallable') && $this->isCallable()) { return 'callable'; } if (($class = $this->getClass()) instanceof \ReflectionClass) { return $class->getName(); } $docBlock = $this->getDeclaringFunction()->getDocBlock(); if (!$docBlock instanceof DocBlockReflection) { return null; } $params = $docBlock->getTags('param'); if (isset($params[$this->getPosition()])) { return $params[$this->getPosition()]->getType(); } return null; } public function toString() { return parent::__toString(); } public function __toString() { return parent::__toString(); } }