protected function getIntroducedMethodsFromInterfaceIntroductions(array $interfaceIntroductions)
{
$methods = [];
$methodsAndIntroductions = [];
foreach ($interfaceIntroductions as $introduction) {
$interfaceName = $introduction->getInterfaceName();
$methodNames = get_class_methods($interfaceName);
if (is_array($methodNames)) {
foreach ($methodNames as $newMethodName) {
if (isset($methodsAndIntroductions[$newMethodName])) {
throw new Aop\Exception('Method name conflict! Method "' . $newMethodName . '" introduced by "' . $introduction->getInterfaceName() . '" declared in aspect "' . $introduction->getDeclaringAspectClassName() . '" has already been introduced by "' . $methodsAndIntroductions[$newMethodName]->getInterfaceName() . '" declared in aspect "' . $methodsAndIntroductions[$newMethodName]->getDeclaringAspectClassName() . '".', 1173020942);
}
$methods[] = [$interfaceName, $newMethodName];
$methodsAndIntroductions[$newMethodName] = $introduction;
}
}
}
return $methods;
}