1 package TestAppCustomContainer::NoSugarContainer;
3 use namespace::autoclean;
6 extends 'Catalyst::IOC::Container';
11 $self->get_sub_container('component')->add_service(
12 Catalyst::IOC::ConstructorInjection->new(
14 class => 'TestAppCustomContainer::Model::Bar',
16 depends_on( '/application_name' ),
17 depends_on( '/config' ),
18 depends_on( '/model/Foo' ),
22 $self->get_sub_container('model')->add_service(
23 Catalyst::IOC::BlockInjection->new(
26 depends_on( '/model/Foo' ),
27 depends_on( '/component/model_Bar' ),
32 my $foo = $s->param('Foo');
35 return $s->param('model_Bar');
40 $self->get_sub_container('component')->add_service(
41 Catalyst::IOC::ConstructorInjection->new(
43 class => 'TestAppCustomContainer::Model::Baz',
44 lifecycle => '+Catalyst::IOC::LifeCycle::Request',
46 depends_on( '/application_name' ),
47 depends_on( '/config' ),
48 depends_on( '/model/Foo' ),
52 $self->get_sub_container('model')->add_service(
53 Catalyst::IOC::BlockInjection->new(
56 depends_on( '/model/Foo' ),
57 depends_on( '/component/model_Baz' ),
62 my $foo = $s->param('Foo');
65 return $s->param('model_Baz');
70 $self->get_sub_container('model')->add_service(
71 Catalyst::IOC::BlockInjection->new(
73 lifecycle => 'Singleton',
75 depends_on( '/component/model_Quux' ),
77 block => sub { shift->param('model_Bar') },
81 $self->get_sub_container('component')->add_service(
82 Catalyst::IOC::ConstructorInjection->new(
84 lifecycle => 'Singleton',
85 class => 'TestAppCustomContainer::External::Class',
87 depends_on( '/application_name' ),
88 depends_on( '/config' ),
92 $self->get_sub_container('model')->add_service(
93 Catalyst::IOC::BlockInjection->new(
95 lifecycle => 'Singleton',
97 depends_on( '/config' ),
98 depends_on( '/component/model_Fnar' ),
100 block => sub { shift->param('model_Fnar') },
105 __PACKAGE__->meta->make_immutable;