Get only the methods that this class implements (i.e. do not search
up parent classes etc.)
public getImmediateMethods ( ) : BetterReflection\Reflection\ReflectionMethod[] | ||
return | BetterReflection\Reflection\ReflectionMethod[] |
/** * getVisibleMethods returns only the methods that are visible according to `api.visibility`. * * @param \BetterReflection\Reflection\ReflectionClass $class * * @return \BetterReflection\Reflection\ReflectionMethod[] */ public function getVisibleMethods(ReflectionClass $class) { try { $methods = $class->getMethods(); } catch (IdentifierNotFound $e) { $methods = $class->getImmediateMethods(); } return array_filter($methods, [$this, 'isMethodVisible']); }
/** * extracts usages to other classes. * * @param ReflectionClass $class * * @return ReflectionClass[] */ protected function buildUsages(ReflectionClass $class) { $usages = []; foreach ($class->getImmediateMethods() as $method) { /** @var ReflectionMethod $method */ foreach ($method->getParameters() as $parameter) { /* @var ReflectionParameter $parameter */ try { if ($parameter->getClass()) { $usages[$parameter->getClass()->getName()] = $parameter->getClass()->getName(); } } catch (IdentifierNotFound $e) { $usages[$e->getClassName()] = $e->getClassName(); } } } return array_unique($usages); }
/** * {@inheritdoc} */ public function getImmediateMethods() { return $this->reflectionClass->getImmediateMethods(); }