public function packageObjectsCallback()
{
$filenameAndPath = func_get_arg(0);
// We expect the following overriding order:
// - $packageObjects
// - $globalObjects
// - $packageContextObjects
// - $globalContextObjects
// - $packageSubContextObjects
// - $globalSubContextObjects
$packageObjects = [SomeClass::class => ['className' => 'Foo', 'configPackageObjects' => 'correct', 'configGlobalObjects' => 'overriddenWronglyFromPackageObjects', 'configPackageContextObjects' => 'overriddenWronglyFromPackageObjects', 'configGlobalContextObjects' => 'overriddenWronglyFromPackageObjects', 'configPackageSubContextObjects' => 'overriddenWronglyFromPackageObjects', 'configGlobalSubContextObjects' => 'overriddenWronglyFromPackageObjects']];
$globalObjects = [SomeClass::class => ['configGlobalObjects' => 'correct', 'configPackageContextObjects' => 'overriddenWronglyFromGlobalObjects', 'configGlobalContextObjects' => 'overriddenWronglyFromGlobalObjects', 'configPackageSubContextObjects' => 'overriddenWronglyFromGlobalObjects', 'configGlobalSubContextObjects' => 'overriddenWronglyFromGlobalObjects']];
$packageContextObjects = [SomeClass::class => ['className' => 'Bar', 'configPackageContextObjects' => 'correct', 'configGlobalContextObjects' => 'overriddenWronglyFromPackageContextObjects', 'configPackageSubContextObjects' => 'overriddenWronglyFromPackageContextObjects', 'configGlobalSubContextObjects' => 'overriddenWronglyFromPackageContextObjects']];
$globalContextObjects = [SomeClass::class => ['configGlobalContextObjects' => 'correct', 'configPackageSubContextObjects' => 'overriddenWronglyFromGlobalContextObjects', 'configGlobalSubContextObjects' => 'overriddenWronglyFromGlobalContextObjects']];
$packageSubContextObjects = [SomeClass::class => ['configPackageSubContextObjects' => 'correct', 'configGlobalSubContextObjects' => 'overriddenWronglyFromPackageSubContextObjects']];
$globalSubContextObjects = [SomeClass::class => ['configGlobalSubContextObjects' => 'correct']];
switch ($filenameAndPath) {
case 'Flow/Configuration/Objects':
return $packageObjects;
case 'Flow/Configuration/Testing/Objects':
return $packageContextObjects;
case 'Flow/Configuration/Testing/System1/Objects':
return $packageSubContextObjects;
case FLOW_PATH_CONFIGURATION . 'Objects':
return $globalObjects;
case FLOW_PATH_CONFIGURATION . 'Testing/Objects':
return $globalContextObjects;
case FLOW_PATH_CONFIGURATION . 'Testing/System1/Objects':
return $globalSubContextObjects;
default:
throw new \Exception('Unexpected filename: ' . $filenameAndPath);
}
}