1 package TestAppCustomContainer::NoSugarContainer;
3 use namespace::autoclean;
6 extends 'Catalyst::IOC::Container';
11 $self->get_sub_container('model')->add_service(
12 Catalyst::IOC::ConstructorInjection->new(
14 lifecycle => 'Singleton',
15 class => 'TestAppCustomContainer::Model::Bar',
17 application_name => depends_on( '/application_name' ),
18 config => depends_on( '/config' ),
19 foo => depends_on('/model/Foo'),
24 $self->get_sub_container('model')->add_service(
25 # FIXME - i think it should be a ConstructorInjection
26 # but only BlockInjection gets ctx parameter
27 Catalyst::IOC::BlockInjection->new(
29 lifecycle => '+Catalyst::IOC::LifeCycle::Request',
31 Bread::Board::Dependency->new(
32 service_name => 'foo',
33 service_path => 'Foo',
35 # FIXME - same as above
38 accept_context_args => [ +{} ],
43 TestAppCustomContainer::Model::Baz->new(foo => shift->param('foo'));
48 $self->get_sub_container('model')->add_service(
49 Catalyst::IOC::BlockInjection->new(
51 lifecycle => 'Singleton',
53 depends_on( '/component/model_Quux' ),
55 block => sub { shift->param('model_Bar') },
59 $self->get_sub_container('component')->add_service(
60 Catalyst::IOC::ConstructorInjection->new(
62 lifecycle => 'Singleton',
63 class => 'TestAppCustomContainer::External::Class',
65 depends_on( '/application_name' ),
66 depends_on( '/config' ),
70 $self->get_sub_container('model')->add_service(
71 Catalyst::IOC::BlockInjection->new(
73 lifecycle => 'Singleton',
75 depends_on( '/config' ),
76 depends_on( '/component/model_Fnar' ),
78 block => sub { shift->param('model_Fnar') },
83 __PACKAGE__->meta->make_immutable;