Mercurial > pub > Impl
comparison lib/IMPL/Config/Container.pm @ 417:3ed0c58e9da3 ref20150831
working on di container, tests
author | cin |
---|---|
date | Mon, 02 Nov 2015 01:56:53 +0300 |
parents | 3d24b10dd0d5 |
children | 3f38dabaf5cc |
comparison
equal
deleted
inserted
replaced
416:cc2cf8c0edc2 | 417:3ed0c58e9da3 |
---|---|
45 $this->services( Bag->new() ); | 45 $this->services( Bag->new() ); |
46 $this->root($this); | 46 $this->root($this); |
47 } | 47 } |
48 } | 48 } |
49 | 49 |
50 sub Require { | |
51 my ($this, $class) = @_; | |
52 | |
53 return $this->loader->Require($class); | |
54 } | |
55 | |
50 sub Register { | 56 sub Register { |
51 my ( $this, $role, $service ) = @_; | 57 my ( $this, $role, $service ) = @_; |
52 | 58 |
53 die IMPL::InvalidArgumentException->new('service') | 59 die IMPL::InvalidArgumentException->new('service') |
54 unless is( $service, Descriptor ); | 60 unless is( $service, Descriptor ); |
62 role => 'The argument is required' ) | 68 role => 'The argument is required' ) |
63 unless $role; | 69 unless $role; |
64 | 70 |
65 if ( isarray($role) ) { | 71 if ( isarray($role) ) { |
66 my $tempRole = "unnamed-" . $nextRoleId++; | 72 my $tempRole = "unnamed-" . $nextRoleId++; |
67 $this->role->AddRole( $tempRole, $role ); | 73 $this->roles->AddRole( $tempRole, $role ); |
68 $role = $tempRole; | 74 $role = $tempRole; |
69 } | 75 } |
70 | 76 |
71 $this->roles->GetLinearRoleHash($role); | 77 $this->roles->GetLinearRoleHash($role); |
72 } | 78 } |
75 my ( $this, $role, %opts ) = @_; | 81 my ( $this, $role, %opts ) = @_; |
76 | 82 |
77 my $descriptor = $this->services->Resolve($role); | 83 my $descriptor = $this->services->Resolve($role); |
78 | 84 |
79 return $descriptor->Activate( ActivationContext->new($this) ) | 85 return $descriptor->Activate( ActivationContext->new($this) ) |
80 if $descirptor; | 86 if $descriptor; |
81 | 87 |
82 return $opts{default} if exists $opts{default}; | 88 return $opts{default} if exists $opts{default}; |
83 } | 89 } |
84 | 90 |
85 sub ResolveAll { | 91 sub ResolveAll { |