getName()); if (!$zendReflection instanceof Zend_Reflection_Class) { require_once 'Zend/Reflection/Exception.php'; throw new Zend_Reflection_Exception('Invalid reflection class provided; must extend Zend_Reflection_Class'); } unset($phpReflection); return $zendReflection; } /** * Get class reflection object * * @param string $reflectionClass Reflection class to use * @return Zend_Reflection_Class */ public function getClass($reflectionClass = 'Zend_Reflection_Class') { $phpReflection = parent::getClass(); if($phpReflection == null) { return null; } $zendReflection = new $reflectionClass($phpReflection->getName()); if (!$zendReflection instanceof Zend_Reflection_Class) { require_once 'Zend/Reflection/Exception.php'; throw new Zend_Reflection_Exception('Invalid reflection class provided; must extend Zend_Reflection_Class'); } unset($phpReflection); return $zendReflection; } /** * Get declaring function reflection object * * @param string $reflectionClass Reflection class to use * @return Zend_Reflection_Function|Zend_Reflection_Method */ public function getDeclaringFunction($reflectionClass = null) { $phpReflection = parent::getDeclaringFunction(); if ($phpReflection instanceof ReflectionMethod) { $baseClass = 'Zend_Reflection_Method'; if (null === $reflectionClass) { $reflectionClass = $baseClass; } $zendReflection = new $reflectionClass($this->getDeclaringClass()->getName(), $phpReflection->getName()); } else { $baseClass = 'Zend_Reflection_Function'; if (null === $reflectionClass) { $reflectionClass = $baseClass; } $zendReflection = new $reflectionClass($phpReflection->getName()); } if (!$zendReflection instanceof $baseClass) { require_once 'Zend/Reflection/Exception.php'; throw new Zend_Reflection_Exception('Invalid reflection class provided; must extend ' . $baseClass); } unset($phpReflection); return $zendReflection; } /** * Get parameter type * * @return string */ public function getType() { if ($docblock = $this->getDeclaringFunction()->getDocblock()) { $params = $docblock->getTags('param'); if (isset($params[$this->getPosition()])) { return $params[$this->getPosition()]->getType(); } } return null; } }