Beispiel #1
0
 /**
  * @param BaseInjectionTarget $InjectionTarget
  * @return object[]
  */
 private function getServicesToInject(IInjectionTarget $InjectionTarget)
 {
     $requiredTypes = $InjectionTarget->getRequiredTypes();
     $servicesToInject = [];
     foreach ($requiredTypes as $parameterName => $requestedType) {
         try {
             $Service = $this->ServiceFactory->getService($requestedType, $this);
         } catch (ServiceNotDefined $Exception) {
             throw new TypeHintIsNotADefinedService($InjectionTarget, $parameterName, $requestedType);
         }
         $servicesToInject[] = $Service;
     }
     return $servicesToInject;
 }
Beispiel #2
0
 /**
  * @test
  */
 public function A_servcie_instance_can_be_added()
 {
     // given
     $ServiceDefinitions = new ServiceDefinitions();
     $Target = new ServiceFactory($ServiceDefinitions);
     // when
     $A = new A();
     $Target->addService(IdentifyingType::is(Type::fromName('tueena\\spec\\core\\stubs\\A')), $A);
     $Injector = new Injector($Target);
     // then
     $this->assertSame($A, $Target->getService(Type::fromName('tueena\\spec\\core\\stubs\\A'), $Injector));
 }