13 private $objectManagerConfig;
23 private $preferences = [];
28 private $virtualTypes = [];
45 $this->objectManagerConfig = $objectManagerConfig;
46 $this->definitions = $definitions;
47 $this->pluginList = $pluginList;
70 private function getConstructorParameters(
$className)
72 $parameters = $this->definitions->getParameters(
$className);
85 $diConfiguration = $this->getConfiguredConstructorParameters(
$className);
90 if (!$originalParameters) {
94 foreach ($originalParameters as $parameter) {
95 $paramArray = [$parameter[0], $parameter[1], is_array($parameter[3]) ?
"<empty array>" : $parameter[3]];
96 if (isset($diConfiguration[$parameter[0]])) {
97 $paramArray[2] = $this->renderParameters($diConfiguration[$parameter[0]]);
110 private function renderParameters($configuredParameter)
113 if (is_array($configuredParameter)) {
114 if (isset($configuredParameter[
'instance'])) {
115 $result =
'instance of ' . $configuredParameter[
'instance'];
117 foreach ($configuredParameter as $keyName => $instance) {
118 $result[$keyName] = $this->renderParameters($instance);
122 $result =
'string ' . $configuredParameter;
133 private function getConfiguredConstructorParameters(
$className)
135 return $this->objectManagerConfig->getArguments(
$className);
147 if (!isset($this->virtualTypes[
$className])) {
149 foreach ($this->objectManagerConfig->getVirtualTypes() as $virtualType => $baseName) {
150 if ($baseName ==
$className || $baseName == $preference) {
151 $this->virtualTypes[
$className][] = $virtualType;
164 return $this->pluginList->getPluginsListByClass(
$className);
175 $virtualTypes = $this->objectManagerConfig->getVirtualTypes();
187 $virtualTypes = $this->objectManagerConfig->getVirtualTypes();