protected function _reflectionCache()
    {
        $class = get_class($this);
        if (isset(self::$_reflectionCache[$class])) {
            return self::$_reflectionCache[$class];
        }

        $events = $this->implementedEvents();
        $eventMethods = [];
        foreach ($events as $e => $binding) {
            if (is_array($binding) && isset($binding['callable'])) {
                /* @var string $callable */
                $callable = $binding['callable'];
                $binding = $callable;
            }
            $eventMethods[$binding] = true;
        }

        $baseClass = 'Cake\ORM\Behavior';
        if (isset(self::$_reflectionCache[$baseClass])) {
            $baseMethods = self::$_reflectionCache[$baseClass];
        } else {
            $baseMethods = get_class_methods($baseClass);
            self::$_reflectionCache[$baseClass] = $baseMethods;
        }

        $return = [
            'finders' => [],
            'methods' => []
        ];

        $reflection = new ReflectionClass($class);

        foreach ($reflection->getMethods(ReflectionMethod::IS_PUBLIC) as $method) {
            $methodName = $method->getName();
            if (in_array($methodName, $baseMethods) ||
                isset($eventMethods[$methodName])
            ) {
                continue;
            }

            if (substr($methodName, 0, 4) === 'find') {
                $return['finders'][lcfirst(substr($methodName, 4))] = $methodName;
            } else {
                $return['methods'][$methodName] = $methodName;
            }
        }

        return self::$_reflectionCache[$class] = $return;
    }
protected function _reflectionCache()
    {
        $class = get_class($this);
        if (isset(self::$_reflectionCache[$class])) {
            return self::$_reflectionCache[$class];
        }

        $events = $this->implementedEvents();
        $eventMethods = [];
        foreach ($events as $e => $binding) {
            if (is_array($binding) && isset($binding['callable'])) {
                /* @var string $callable */
                $callable = $binding['callable'];
                $binding = $callable;
            }
            $eventMethods[$binding] = true;
        }

        $baseClass = 'Cake\ORM\Behavior';
        if (isset(self::$_reflectionCache[$baseClass])) {
            $baseMethods = self::$_reflectionCache[$baseClass];
        } else {
            $baseMethods = get_class_methods($baseClass);
            self::$_reflectionCache[$baseClass] = $baseMethods;
        }

        $return = [
            'finders' => [],
            'methods' => []
        ];

        $reflection = new ReflectionClass($class);

        foreach ($reflection->getMethods(ReflectionMethod::IS_PUBLIC) as $method) {
            $methodName = $method->getName();
            if (in_array($methodName, $baseMethods) ||
                isset($eventMethods[$methodName])
            ) {
                continue;
            }

            if (substr($methodName, 0, 4) === 'find') {
                $return['finders'][lcfirst(substr($methodName, 4))] = $methodName;
            } else {
                $return['methods'][$methodName] = $methodName;
            }
        }

        return self::$_reflectionCache[$class] = $return;
    }
protected function _reflectionCache ( ) { $ class = get_class ( $ this ) ; if ( isset ( self :: $ _reflectionCache [ $ class ] ) ) { return self :: $ _reflectionCache [ $ class ] ; } $ events = $ this -> implementedEvents ( ) ; $ eventMethods = [ ] ; foreach ( $ events as $ e => $ binding ) { if ( is_array ( $ binding ) && isset ( $ binding [ 'callable' ] ) ) { /* @var string $callable */ $ callable = $ binding [ 'callable' ] ; $ binding = $ callable ; } $ eventMethods [ $ binding ] = true ; } $ baseClass = 'Cake\ORM\Behavior' ; if ( isset ( self :: $ _reflectionCache [ $ baseClass ] ) ) { $ baseMethods = self :: $ _reflectionCache [ $ baseClass ] ; } else { $ baseMethods = get_class_methods ( $ baseClass ) ; self :: $ _reflectionCache [ $ baseClass ] = $ baseMethods ; } $ return = [ 'finders' => [ ] , 'methods' => [ ] ] ; $ reflection = new ReflectionClass ( $ class ) ; foreach ( $ reflection -> getMethods ( ReflectionMethod :: IS_PUBLIC ) as $ method ) { $ methodName = $ method -> getName ( ) ; if ( in_array ( $ methodName , $ baseMethods ) || isset ( $ eventMethods [ $ methodName ] ) ) { continue ; } if ( substr ( $ methodName , 0 , 4 ) === 'find' ) { $ return [ 'finders' ] [ lcfirst ( substr ( $ methodName , 4 ) ) ] = $ methodName ; } else { $ return [ 'methods' ] [ $ methodName ] = $ methodName ; } } return self :: $ _reflectionCache [ $ class ] = $ return ; }
Gets the methods implemented by this behavior

Uses the implementedEvents() method to exclude callback methods.
Methods starting with `_` will be ignored, as will methods
declared on Cake\ORM\Behavior

@return array
@throws \ReflectionException
Gets the methods implemented by this behavior