Exemplo n.º 1
0
    /**
     * 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]);
                }
            }
        }
    }
Exemplo n.º 2
0
 /**
  * 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;
 }
Exemplo n.º 3
0
 /**
  * Returns instance argument
  *
  * @param string $instanceType
  * @return array|mixed
  */
 private function getInstanceArgument($instanceType)
 {
     return $this->diContainerConfig->isShared($instanceType) ? $instanceType : self::getNonSharedInstance($instanceType);
 }