1 package TestAppCustomContainer::NoSugarContainer;
3 use namespace::autoclean;
6 extends 'Catalyst::IOC::Container';
11 warn("Add Bar to model");
12 $self->get_sub_container('model')->add_service(
13 Catalyst::IOC::ConstructorInjection->new(
15 lifecycle => 'Singleton',
16 class => 'TestAppCustomContainer::Model::Bar',
18 application_name => depends_on( '/application_name' ),
19 config => depends_on( '/config' ),
20 foo => depends_on('/model/DefaultSetup'),
25 # $self->get_sub_container('model')->add_service(
26 # # FIXME - i think it should be a ConstructorInjection
27 # # but only BlockInjection gets ctx parameter
28 # Catalyst::IOC::BlockInjection->new(
30 # lifecycle => '+Catalyst::IOC::LifeCycle::Request',
32 # Bread::Board::Dependency->new(
33 # service_name => 'foo',
34 # service_path => 'Foo',
36 # # FIXME - same as above
39 # accept_context_args => [ +{} ],
44 # TestAppCustomContainer::Model::Baz->new(foo => shift->param('foo'));
50 # $self->get_sub_container('model')->add_service(
51 # Catalyst::IOC::BlockInjection->new(
53 # lifecycle => 'Singleton',
55 # depends_on( '/component/model_Quux' ),
57 # block => sub { shift->param('model_Bar') },
61 $self->get_sub_container('component')->add_service(
62 Catalyst::IOC::ConstructorInjection->new(
64 lifecycle => 'Singleton',
65 class => 'TestAppCustomContainer::External::Class',
67 depends_on( '/application_name' ),
68 depends_on( '/config' ),
72 $self->get_sub_container('model')->add_service(
73 Catalyst::IOC::BlockInjection->new(
75 lifecycle => 'Singleton',
77 depends_on( '/config' ),
78 depends_on( '/component/model_Fnar' ),
80 block => sub { shift->param('model_Fnar') },
85 __PACKAGE__->meta->make_immutable;