Traverses through the given class and interface names and builds a base object configuration
for all of them. Then parses the provided extra configuration and merges the result
into the overall configuration. Finally autowires dependencies of arguments and properties
which can be resolved automatically.
public buildObjectConfigurations ( array $availableClassAndInterfaceNamesByPackage, array $rawObjectConfigurationsByPackages ) : array |
||
$availableClassAndInterfaceNamesByPackage | array | An array of available class names, grouped by package key |
$rawObjectConfigurationsByPackages | array | An array of package keys and their raw (ie. unparsed) object configurations |
return | array |
/** * Initializes the the object configurations and some other parts of this Object Manager. * * @param array $packages An array of active packages to consider * @return void */ public function initialize(array $packages) { $this->registeredClassNames = $this->registerClassFiles($packages); $this->reflectionService->buildReflectionData($this->registeredClassNames); $rawCustomObjectConfigurations = $this->configurationManager->getConfiguration(ConfigurationManager::CONFIGURATION_TYPE_OBJECTS); $configurationBuilder = new ConfigurationBuilder(); $configurationBuilder->injectReflectionService($this->reflectionService); $configurationBuilder->injectSystemLogger($this->systemLogger); $this->objectConfigurations = $configurationBuilder->buildObjectConfigurations($this->registeredClassNames, $rawCustomObjectConfigurations); $this->setObjects($this->buildObjectsArray()); }