sub BUILD {
my $self = shift;
- $self->get_sub_container('component')->add_service(
+
+ $self->get_sub_container('model')->add_service(
Catalyst::IOC::ConstructorInjection->new(
- name => 'model_Baz',
- class => 'TestAppCustomContainer::Model::Baz',
+ name => 'Bar',
+ lifecycle => 'Singleton',
+ class => 'TestAppCustomContainer::Model::Bar',
+ dependencies => {
+ application_name => depends_on( '/application_name' ),
+ config => depends_on( '/config' ),
+ foo => depends_on('/model/Foo'),
+ },
+ )
+ );
-# FIXME - it should simply be Request (or InstancePerRequest, etc)
-# see Bread/Board/Service.pm line 47
+ $self->get_sub_container('model')->add_service(
+ # FIXME - i think it should be a ConstructorInjection
+ # but only BlockInjection gets ctx parameter
+ Catalyst::IOC::BlockInjection->new(
+ name => 'Baz',
lifecycle => '+Catalyst::IOC::LifeCycle::Request',
dependencies => [
+ Bread::Board::Dependency->new(
+ service_name => 'foo',
+ service_path => 'Foo',
+
+ # FIXME - same as above
+ service_params => {
+ ctx => +{},
+ accept_context_args => [ +{} ],
+ },
+ ),
+ ],
+ block => sub {
+ TestAppCustomContainer::Model::Baz->new(foo => shift->param('foo'));
+ },
+ )
+ );
+
+ $self->get_sub_container('model')->add_service(
+ Catalyst::IOC::BlockInjection->new(
+ name => 'Quux',
+ lifecycle => 'Singleton',
+ dependencies => [
+ depends_on( '/component/model_Quux' ),
+ ],
+ block => sub { shift->param('model_Bar') },
+ )
+ );
+
+ $self->get_sub_container('component')->add_service(
+ Catalyst::IOC::ConstructorInjection->new(
+ name => 'model_Fnar',
+ lifecycle => 'Singleton',
+ class => 'TestAppCustomContainer::External::Class',
+ dependencies => [
depends_on( '/application_name' ),
depends_on( '/config' ),
- depends_on( '/model/Foo' ),
],
)
);
$self->get_sub_container('model')->add_service(
Catalyst::IOC::BlockInjection->new(
- name => 'Baz',
+ name => 'model_Fnar',
+ lifecycle => 'Singleton',
dependencies => [
- depends_on( '/model/Foo' ),
- depends_on( '/component/model_Baz' ),
+ depends_on( '/config' ),
+ depends_on( '/component/model_Fnar' ),
],
- block => sub {
- my $s = shift;
- my $foo = $s->param('Foo');
- my $instance = $s->param('model_Baz');
- return $instance;
- },
+ block => sub { shift->param('model_Fnar') },
)
);
}