protected function getMatchingInterfaceIntroductions(array &$aspectContainers, string $targetClassName): array
    {
        $introductions = [];
        foreach ($aspectContainers as $aspectContainer) {
            if (!$aspectContainer->getCachedTargetClassNameCandidates()->hasClassName($targetClassName)) {
                continue;
            }
            foreach ($aspectContainer->getInterfaceIntroductions() as $introduction) {
                $pointcut = $introduction->getPointcut();
                if ($pointcut->matches($targetClassName, null, null, Algorithms::generateRandomString(13))) {
                    $introductions[] = $introduction;
                }
            }
        }
        return $introductions;
    }
protected function getMatchingInterfaceIntroductions(array &$aspectContainers, string $targetClassName): array
    {
        $introductions = [];
        foreach ($aspectContainers as $aspectContainer) {
            if (!$aspectContainer->getCachedTargetClassNameCandidates()->hasClassName($targetClassName)) {
                continue;
            }
            foreach ($aspectContainer->getInterfaceIntroductions() as $introduction) {
                $pointcut = $introduction->getPointcut();
                if ($pointcut->matches($targetClassName, null, null, Algorithms::generateRandomString(13))) {
                    $introductions[] = $introduction;
                }
            }
        }
        return $introductions;
    }
protected function getMatchingInterfaceIntroductions ( array & $ aspectContainers , string $ targetClassName ) : array { $ introductions = [ ] ; foreach ( $ aspectContainers as $ aspectContainer ) { if ( ! $ aspectContainer -> getCachedTargetClassNameCandidates ( ) -> hasClassName ( $ targetClassName ) ) { continue ; } foreach ( $ aspectContainer -> getInterfaceIntroductions ( ) as $ introduction ) { $ pointcut = $ introduction -> getPointcut ( ) ; if ( $ pointcut -> matches ( $ targetClassName , null , null , Algorithms :: generateRandomString ( 13 ) ) ) { $ introductions [ ] = $ introduction ; } } } return $ introductions ; }
Traverses all aspect containers and returns an array of interface
introductions which match the target class.

@param array &$aspectContainers All aspects to take into consideration
@param string $targetClassName Name of the class the pointcut should match with
@return array array of interface names
Traverses all aspect containers and returns an array of interface introductions which match the target class .