sub BUILD {
my $self = shift;
- $self->get_sub_container('component')->add_service(
+
+ warn("Add SingletonLifeCycle to model");
+ $self->get_sub_container('model')->add_service(
Catalyst::IOC::ConstructorInjection->new(
- name => 'model_Baz',
- class => 'TestAppCustomContainer::Model::Baz',
-# lifecycle => 'InstancePerContext',
- dependencies => [
- depends_on( '/application_name' ),
- depends_on( '/config' ),
- depends_on( '/model/Foo' ),
- ],
+ name => 'SingletonLifeCycle',
+ lifecycle => 'Singleton',
+ class => 'TestAppCustomContainer::Model::SingletonLifeCycle',
+ catalyst_component_name => 'TestAppCustomContainer::Model::SingletonLifeCycle',
+ dependencies => {
+ application_name => depends_on( '/application_name' ),
+ foo => depends_on('/model/DefaultSetup'),
+ },
)
);
+
+ warn("Add RequestLifeCycle to model");
$self->get_sub_container('model')->add_service(
- Catalyst::IOC::BlockInjection->new(
- name => 'Baz',
- dependencies => [
- depends_on( '/model/Foo' ),
- depends_on( '/component/model_Baz' ),
- ],
- block => sub {
- my $s = shift;
- my $foo = $s->param('Foo');
- my $instance = $s->param('model_Baz');
- return $instance;
+ Catalyst::IOC::ConstructorInjection->new(
+ name => 'RequestLifeCycle',
+ lifecycle => '+Catalyst::IOC::LifeCycle::Request',
+ class => 'TestAppCustomContainer::Model::RequestLifeCycle',
+ catalyst_component_name => 'TestAppCustomContainer::Model::RequestLifeCycle',
+ dependencies => {
+ application_name => depends_on( '/application_name' ),
+ foo => depends_on('/model/DefaultSetup'),
},
)
);
+
+# Broken deps!?!
+# $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') },
+# )
+# );
+
+# my $fnar_config = $self->resolve(service => 'config')->{'Model::Fnar'} || {};
+# $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' ),
+# ],
+# config => $fnar_config,
+# )
+# );
+# $self->get_sub_container('model')->add_service(
+# Catalyst::IOC::BlockInjection->new(
+# name => 'model_Fnar',
+# lifecycle => 'Singleton',
+# dependencies => [
+# depends_on( '/config' ),
+# depends_on( '/component/model_Fnar' ),
+# ],
+# block => sub { shift->param('model_Fnar') },
+# )
+# );
}
__PACKAGE__->meta->make_immutable;