25 if ($configKeys != array_keys(
$config)) {
29 $interceptors = $this->getInterceptorsList(
$config[
'arguments']);
31 $config[
'arguments'] = array_diff_key(
$config[
'arguments'], array_flip($interceptors));
33 foreach ($interceptors as $originalName => $interceptor) {
34 if (isset(
$config[
'arguments'][$originalName])) {
35 $config[
'arguments'][$interceptor] =
$config[
'arguments'][$originalName];
36 unset(
$config[
'arguments'][$originalName]);
40 $config[
'preferences'] = $this->resolvePreferences(
$config[
'preferences'], $interceptors);
41 $config[
'preferences'] = array_merge($interceptors,
$config[
'preferences']);
42 $config[
'instanceTypes'] = $this->resolvePreferences(
$config[
'instanceTypes'], $interceptors);
53 private function getInterceptorsList(array
$arguments)
57 foreach (array_keys(
$arguments) as $instanceName) {
58 if (substr($instanceName, -12) ===
'\Interceptor') {
59 $originalName = substr($instanceName, 0, strlen($instanceName) - 12);
60 $interceptors[$originalName] = $instanceName;
74 private function resolvePreferences(array $preferences, array $interceptors)
76 foreach ($preferences as &$preference) {
77 if (isset($interceptors[$preference])) {
78 $preference = $interceptors[$preference];