/** * Parse array argument * * @param array $array * * @return void */ protected function parseArray(&$array) { foreach ($array as $key => $item) { if ($item === (array)$item) { if (isset($item['instance'])) { if (isset($item['shared'])) { $isShared = $item['shared']; } else { $isShared = $this->config->isShared($item['instance']); } if ($isShared) { $array[$key] = $this->objectManager->get($item['instance']); } else { $array[$key] = $this->objectManager->create($item['instance']); } } elseif (isset($item['argument'])) { if (isset($this->globalArguments[$item['argument']])) { $array[$key] = $this->globalArguments[$item['argument']]; } else { $array[$key] = null; } } else { $this->parseArray($array[$key]); } } } }
/** * Returns instance argument * * @param string $instanceType * @return array|mixed */ private function getInstanceArgument($instanceType) { if ($this->diContainerConfig->isShared($instanceType)) { $argument = $this->sharedInstancePattern; $argument['_i_'] = $instanceType; } else { $argument = $this->notSharedInstancePattern; $argument['_ins_'] = $instanceType; } return $argument; }
/** * Returns instance argument * * @param string $instanceType * @return array|mixed */ private function getInstanceArgument($instanceType) { return $this->diContainerConfig->isShared($instanceType) ? $instanceType : self::getNonSharedInstance($instanceType); }