/**
* collects all interfaces for current class (only self implemented ones).
*
* @param ReflectionClass $class
* @param string $prefix
* @param string $suffix
*
* @return array
*/
protected function buildInterfaces(ReflectionClass $class, $prefix = '<<', $suffix = '>>')
{
try {
$parentInterfaces = $class->getParentClass() ? $class->getParentClass()->getInterfaces() : [];
} catch (IdentifierNotFound $e) {
$parentInterfaces = [];
}
$interfaces = array_diff($class->getImmediateInterfaces(), $parentInterfaces);
foreach ($interfaces as $key => $interface) {
$interfaces[$key] = $prefix . $this->prepare($interface) . $suffix;
}
natcasesort($interfaces);
return $interfaces;
}