protected function applyClassFilterConfiguration($classNames, $filterConfiguration)
    {
        foreach ($filterConfiguration as $packageKey => $filterExpressions) {
            if (!array_key_exists($packageKey, $classNames)) {
                $this->logger->debug('The package "' . $packageKey . '" specified in the setting "Neos.Flow.object.includeClasses" was either excluded or is not loaded.');
                continue;
            }
            if (!is_array($filterExpressions)) {
                throw new InvalidConfigurationTypeException('The value given for setting "Neos.Flow.object.includeClasses.\'' . $packageKey . '\'" is  invalid. It should be an array of expressions. Check the syntax in the YAML file.', 1422357272);
            }

            $classesForPackageUnderInspection = $classNames[$packageKey];
            $classNames[$packageKey] = [];

            foreach ($filterExpressions as $filterExpression) {
                $classesForPackageUnderInspection = array_filter(
                    $classesForPackageUnderInspection,
                    function ($className) use ($filterExpression) {
                        $match = preg_match('/' . $filterExpression . '/', $className);
                        return $match === 1;
                    }
                );
                $classNames[$packageKey] = array_merge($classNames[$packageKey], $classesForPackageUnderInspection);
                $classesForPackageUnderInspection = $classNames[$packageKey];
            }

            if ($classNames[$packageKey] === []) {
                unset($classNames[$packageKey]);
            }
        }

        return $classNames;
    }
protected function applyClassFilterConfiguration($classNames, $filterConfiguration)
    {
        foreach ($filterConfiguration as $packageKey => $filterExpressions) {
            if (!array_key_exists($packageKey, $classNames)) {
                $this->logger->debug('The package "' . $packageKey . '" specified in the setting "Neos.Flow.object.includeClasses" was either excluded or is not loaded.');
                continue;
            }
            if (!is_array($filterExpressions)) {
                throw new InvalidConfigurationTypeException('The value given for setting "Neos.Flow.object.includeClasses.\'' . $packageKey . '\'" is  invalid. It should be an array of expressions. Check the syntax in the YAML file.', 1422357272);
            }

            $classesForPackageUnderInspection = $classNames[$packageKey];
            $classNames[$packageKey] = [];

            foreach ($filterExpressions as $filterExpression) {
                $classesForPackageUnderInspection = array_filter(
                    $classesForPackageUnderInspection,
                    function ($className) use ($filterExpression) {
                        $match = preg_match('/' . $filterExpression . '/', $className);
                        return $match === 1;
                    }
                );
                $classNames[$packageKey] = array_merge($classNames[$packageKey], $classesForPackageUnderInspection);
                $classesForPackageUnderInspection = $classNames[$packageKey];
            }

            if ($classNames[$packageKey] === []) {
                unset($classNames[$packageKey]);
            }
        }

        return $classNames;
    }
protected function applyClassFilterConfiguration ( $ classNames , $ filterConfiguration ) { foreach ( $ filterConfiguration as $ packageKey => $ filterExpressions ) { if ( ! array_key_exists ( $ packageKey , $ classNames ) ) { $ this -> logger -> debug ( 'The package "' . $ packageKey . '" specified in the setting "Neos.Flow.object.includeClasses" was either excluded or is not loaded.' ) ; continue ; } if ( ! is_array ( $ filterExpressions ) ) { throw new InvalidConfigurationTypeException ( 'The value given for setting "Neos.Flow.object.includeClasses.\'' . $ packageKey . '\'" is  invalid. It should be an array of expressions. Check the syntax in the YAML file.' , 1422357272 ) ; } $ classesForPackageUnderInspection = $ classNames [ $ packageKey ] ; $ classNames [ $ packageKey ] = [ ] ; foreach ( $ filterExpressions as $ filterExpression ) { $ classesForPackageUnderInspection = array_filter ( $ classesForPackageUnderInspection , function ( $ className ) use ( $ filterExpression ) { $ match = preg_match ( '/' . $ filterExpression . '/' , $ className ) ; return $ match === 1 ; } ) ; $ classNames [ $ packageKey ] = array_merge ( $ classNames [ $ packageKey ] , $ classesForPackageUnderInspection ) ; $ classesForPackageUnderInspection = $ classNames [ $ packageKey ] ; } if ( $ classNames [ $ packageKey ] === [ ] ) { unset ( $ classNames [ $ packageKey ] ) ; } } return $ classNames ; }
Filters the classnames available for object management by filter expressions that includes classes.

@param array $classNames All classnames per package
@param array $filterConfiguration The filter configuration to apply
@return array the remaining class
@throws InvalidConfigurationTypeException
Filters the classnames available for object management by filter expressions that includes classes .