1 package TestAppCustomContainer::NoSugarContainer;
3 use namespace::autoclean;
6 extends 'Catalyst::IOC::Container';
11 warn("Add SingletonLifeCycle to model");
12 $self->get_sub_container('model')->add_service(
13 Catalyst::IOC::ConstructorInjection->new(
14 name => 'SingletonLifeCycle',
15 lifecycle => 'Singleton',
16 class => 'TestAppCustomContainer::Model::SingletonLifeCycle',
17 catalyst_component_name => 'TestAppCustomContainer::Model::SingletonLifeCycle',
19 application_name => depends_on( '/application_name' ),
24 warn("Add RequestLifeCycle to model");
25 $self->get_sub_container('model')->add_service(
26 Catalyst::IOC::ConstructorInjection->new(
27 name => 'RequestLifeCycle',
28 lifecycle => '+Catalyst::IOC::LifeCycle::Request',
29 class => 'TestAppCustomContainer::Model::RequestLifeCycle',
30 catalyst_component_name => 'TestAppCustomContainer::Model::RequestLifeCycle',
32 application_name => depends_on( '/application_name' ),
37 # warn("Add DependsOnDefaultSetup to model");
38 # $self->get_sub_container('model')->add_service(
39 # Catalyst::IOC::ConstructorInjection->new(
40 # name => 'DependsOnDefaultSetup',
41 # class => 'TestAppCustomContainer::Model::DependsOnDefaultSetup',
42 # catalyst_component_name => 'TestAppCustomContainer::Model::DependsOnDefaultSetup',
44 # application_name => depends_on( '/application_name' ),
45 # # FIXME - this is what is blowing up everything:
46 # # DefaultSetup needs the context. It's not getting it here!
47 # foo => depends_on('/model/DefaultSetup'),
53 # $self->get_sub_container('model')->add_service(
54 # Catalyst::IOC::BlockInjection->new(
56 # lifecycle => 'Singleton',
58 # depends_on( '/component/model_Quux' ),
60 # block => sub { shift->param('model_Bar') },
64 # my $fnar_config = $self->resolve(service => 'config')->{'Model::Fnar'} || {};
65 # $self->get_sub_container('component')->add_service(
66 # Catalyst::IOC::ConstructorInjection->new(
67 # name => 'model_Fnar',
68 # lifecycle => 'Singleton',
69 # class => 'TestAppCustomContainer::External::Class',
71 # depends_on( '/application_name' ),
73 # config => $fnar_config,
76 # $self->get_sub_container('model')->add_service(
77 # Catalyst::IOC::BlockInjection->new(
78 # name => 'model_Fnar',
79 # lifecycle => 'Singleton',
81 # depends_on( '/config' ),
82 # depends_on( '/component/model_Fnar' ),
84 # block => sub { shift->param('model_Fnar') },
89 __PACKAGE__->meta->make_immutable;