Ejemplo n.º 1
0
 public function testExtend()
 {
     $diContainer = new DiContainer();
     $diContainer['shared_service'] = $diContainer->share(function () {
         return new Service();
     });
     $value = 12345;
     $diContainer->extend('shared_service', function ($sharedService) use($value) {
         $sharedService->value = $value;
         return $sharedService;
     });
     $serviceOne = $diContainer['shared_service'];
     $this->assertInstanceOf('Service', $serviceOne);
     $this->assertEquals($value, $serviceOne->value);
     $serviceTwo = $diContainer['shared_service'];
     $this->assertInstanceOf('Service', $serviceTwo);
     $this->assertEquals($value, $serviceTwo->value);
     $this->assertSame($serviceOne, $serviceTwo);
 }