private function includeMethodAsAction($module, $method, $configuredParts = null)
    {
        // Filter out excluded actions
        if ($module::$excludeActions && in_array($method->name, $module::$excludeActions)) {
            return false;
        }

        // Keep only the $onlyActions if they are specified
        if ($module::$onlyActions && !in_array($method->name, $module::$onlyActions)) {
            return false;
        }

        // Do not include inherited actions if the static $includeInheritedActions property is set to false.
        // However, if an inherited action is also specified in the static $onlyActions property
        // it should be included as an action.
        if (!$module::$includeInheritedActions &&
            !in_array($method->name, $module::$onlyActions) &&
            $method->getDeclaringClass()->getName() != get_class($module)
        ) {
            return false;
        }

        // Do not include hidden methods, methods with a name starting with an underscore
        if (strpos($method->name, '_') === 0) {
            return false;
        };

        // If a part is configured for the module, only include actions from that part
        if ($configuredParts) {
            $moduleParts = Annotation::forMethod($module, $method->name)->fetchAll('part');
            if (!array_uintersect($moduleParts, $configuredParts, 'strcasecmp')) {
                return false;
            }
        }

        return true;
    }
private function includeMethodAsAction($module, $method, $configuredParts = null)
    {
        // Filter out excluded actions
        if ($module::$excludeActions && in_array($method->name, $module::$excludeActions)) {
            return false;
        }

        // Keep only the $onlyActions if they are specified
        if ($module::$onlyActions && !in_array($method->name, $module::$onlyActions)) {
            return false;
        }

        // Do not include inherited actions if the static $includeInheritedActions property is set to false.
        // However, if an inherited action is also specified in the static $onlyActions property
        // it should be included as an action.
        if (!$module::$includeInheritedActions &&
            !in_array($method->name, $module::$onlyActions) &&
            $method->getDeclaringClass()->getName() != get_class($module)
        ) {
            return false;
        }

        // Do not include hidden methods, methods with a name starting with an underscore
        if (strpos($method->name, '_') === 0) {
            return false;
        };

        // If a part is configured for the module, only include actions from that part
        if ($configuredParts) {
            $moduleParts = Annotation::forMethod($module, $method->name)->fetchAll('part');
            if (!array_uintersect($moduleParts, $configuredParts, 'strcasecmp')) {
                return false;
            }
        }

        return true;
    }
private function includeMethodAsAction ( $ module , $ method , $ configuredParts = null ) { // Filter out excluded actions if ( $ module :: $ excludeActions && in_array ( $ method -> name , $ module :: $ excludeActions ) ) { return false ; } // Keep only the $onlyActions if they are specified if ( $ module :: $ onlyActions && ! in_array ( $ method -> name , $ module :: $ onlyActions ) ) { return false ; } // Do not include inherited actions if the static $includeInheritedActions property is set to false. // However, if an inherited action is also specified in the static $onlyActions property // it should be included as an action. if ( ! $ module :: $ includeInheritedActions && ! in_array ( $ method -> name , $ module :: $ onlyActions ) && $ method -> getDeclaringClass ( ) -> getName ( ) != get_class ( $ module ) ) { return false ; } // Do not include hidden methods, methods with a name starting with an underscore if ( strpos ( $ method -> name , '_' ) === 0 ) { return false ; } ; // If a part is configured for the module, only include actions from that part if ( $ configuredParts ) { $ moduleParts = Annotation :: forMethod ( $ module , $ method -> name ) -> fetchAll ( 'part' ) ; if ( ! array_uintersect ( $ moduleParts , $ configuredParts , 'strcasecmp' ) ) { return false ; } } return true ; }
Should a method be included as an action?

@param \Codeception\Module $module
@param \ReflectionMethod $method
@param array|null $configuredParts
@return bool
Should a method be included as an action?