Example #1
0
 public function testGetInstanceArguments()
 {
     $this->model->addDefinition(self::INSTANCE_1, $this->getArgument());
     $this->assertEquals($this->getArgument(), $this->model->getInstanceArguments(self::INSTANCE_1));
 }
Example #2
0
 /**
  * Returns constructor with defined arguments
  *
  * @param DefinitionsCollection $definitionsCollection
  * @param ConfigInterface $config
  * @return array|mixed
  * @throws \ReflectionException
  */
 private function getConfigForScope(DefinitionsCollection $definitionsCollection, ConfigInterface $config)
 {
     $constructors = [];
     $argumentsResolver = $this->argumentsResolverFactory->create($config);
     foreach ($definitionsCollection->getInstancesNamesList() as $instanceType) {
         if (!$this->typeReader->isConcrete($instanceType)) {
             continue;
         }
         $constructor = $definitionsCollection->getInstanceArguments($instanceType);
         $constructors[$instanceType] = $argumentsResolver->getResolvedConstructorArguments($instanceType, $constructor);
     }
     foreach (array_keys($config->getVirtualTypes()) as $instanceType) {
         $originalType = $config->getInstanceType($instanceType);
         if (!$definitionsCollection->hasInstance($originalType)) {
             if (!$this->typeReader->isConcrete($originalType)) {
                 continue;
             }
             $constructor = $this->classReaderDecorator->getConstructor($originalType);
         } else {
             $constructor = $definitionsCollection->getInstanceArguments($originalType);
         }
         $constructors[$instanceType] = $argumentsResolver->getResolvedConstructorArguments($instanceType, $constructor);
     }
     return $constructors;
 }
Example #3
0
 /**
  * @param Collection $definitionCollection
  * @param array $virtualTypes
  * @return array
  */
 private function getResolvedVirtualConstructorArgumentsMap(Collection $definitionCollection, array $virtualTypes)
 {
     $getResolvedConstructorArgumentsMap = [];
     foreach ($virtualTypes as $virtualType => $concreteType) {
         $getResolvedConstructorArgumentsMap[] = [$virtualType, $definitionCollection->getInstanceArguments($concreteType), $this->getResolvedArguments($definitionCollection->getInstanceArguments($concreteType))];
     }
     return $getResolvedConstructorArgumentsMap;
 }