src/Traits/ReflectionClassLikeTrait.php
public function getMethods($filter = null)
    {
        if (!isset($this->methods)) {
            $directMethods = ReflectionMethod::collectFromClassNode($this->classLikeNode, $this);
            $parentMethods = $this->recursiveCollect(function (array &$result, \ReflectionClass $instance, $isParent) {
                $reflectionMethods = [];
                foreach ($instance->getMethods() as $reflectionMethod) {
                    if (!$isParent || !$reflectionMethod->isPrivate()) {
                        $reflectionMethods[$reflectionMethod->name] = $reflectionMethod;
                    }
                }
                $result += $reflectionMethods;
            });
            $methods = $directMethods + $parentMethods;

            $this->methods = $methods;
        }
        if (!isset($filter)) {
            return array_values($this->methods);
        }

        $methods = [];
        foreach ($this->methods as $method) {
            if (!($filter & $method->getModifiers())) {
                continue;
            }
            $methods[] = $method;
        }

        return $methods;
    }
public function getMethods($filter = null)
    {
        if (!isset($this->methods)) {
            $directMethods = ReflectionMethod::collectFromClassNode($this->classLikeNode, $this);
            $parentMethods = $this->recursiveCollect(function (array &$result, \ReflectionClass $instance, $isParent) {
                $reflectionMethods = [];
                foreach ($instance->getMethods() as $reflectionMethod) {
                    if (!$isParent || !$reflectionMethod->isPrivate()) {
                        $reflectionMethods[$reflectionMethod->name] = $reflectionMethod;
                    }
                }
                $result += $reflectionMethods;
            });
            $methods = $directMethods + $parentMethods;

            $this->methods = $methods;
        }
        if (!isset($filter)) {
            return array_values($this->methods);
        }

        $methods = [];
        foreach ($this->methods as $method) {
            if (!($filter & $method->getModifiers())) {
                continue;
            }
            $methods[] = $method;
        }

        return $methods;
    }
public function getMethods ( $ filter = null ) { if ( ! isset ( $ this -> methods ) ) { $ directMethods = ReflectionMethod :: collectFromClassNode ( $ this -> classLikeNode , $ this ) ; $ parentMethods = $ this -> recursiveCollect ( function ( array & $ result , \ ReflectionClass $ instance , $ isParent ) { $ reflectionMethods = [ ] ; foreach ( $ instance -> getMethods ( ) as $ reflectionMethod ) { if ( ! $ isParent || ! $ reflectionMethod -> isPrivate ( ) ) { $ reflectionMethods [ $ reflectionMethod -> name ] = $ reflectionMethod ; } } $ result += $ reflectionMethods ; } ) ; $ methods = $ directMethods + $ parentMethods ; $ this -> methods = $ methods ; } if ( ! isset ( $ filter ) ) { return array_values ( $ this -> methods ) ; } $ methods = [ ] ; foreach ( $ this -> methods as $ method ) { if ( ! ( $ filter & $ method -> getModifiers ( ) ) ) { continue ; } $ methods [ ] = $ method ; } return $ methods ; }
Returns list of reflection methods

@param null|integer $filter Optional filter

@return array|\ReflectionMethod[]
Returns list of reflection methods