$file) { if (!isset($funcsByFile[$file])) { $func = include_once $file; if (is_callable($func)) { $funcsByFile[$file] = $func; } else { error_log(sprintf('MixinLoader: Received invalid callback from \"%s\"', $file)); } } } foreach ($mixInfos as $ext) { /** @var \CRM_Extension_MixInfo $ext */ foreach ($ext->mixins as $verExpr) { $doneId = $ext->longName . '::' . $verExpr; if (isset($done[$doneId])) { continue; } if (isset($funcsByFile[$liveFuncFiles[$verExpr]])) { call_user_func($funcsByFile[$liveFuncFiles[$verExpr]], $ext, $bootCache); $done[$doneId] = 1; } else { error_log(sprintf('MixinLoader: Failed to load "%s" for extension "%s"', $verExpr, $ext->longName)); } } } } }