return
if $c->config->{disable_component_resolution_regex_fallback} && !ref $name;
- my $query = ref $name ? $name : qr{$name};
+ my $query = ref $name ? $name : qr{$name}i;
$query =~ s/^${appclass}::(C|Controller):://;
my @comps = $container->get_service_list;
my @result;
$c->log->warn( Carp::shortmess(qq(Found results for "${name}" using regexp fallback)) );
$c->log->warn( 'Relying on the regexp fallback behavior for component resolution' );
$c->log->warn( 'is unreliable and unsafe. You have been warned' );
+ return shift @result;
}
return @result;
return
if $c->config->{disable_component_resolution_regex_fallback} && !ref $name;
- my $query = ref $name ? $name : qr{$name};
+ my $query = ref $name ? $name : qr{$name}i;
$query =~ s/^${appclass}::(M|Model):://;
my @comps = $container->get_service_list;
my @result;
$c->log->warn( Carp::shortmess(qq(Found results for "${name}" using regexp fallback)) );
$c->log->warn( 'Relying on the regexp fallback behavior for component resolution' );
$c->log->warn( 'is unreliable and unsafe. You have been warned' );
+ return shift @result;
}
return @result;
return
if $c->config->{disable_component_resolution_regex_fallback} && !ref $name;
- my $query = ref $name ? $name : qr{$name};
+ my $query = ref $name ? $name : qr{$name}i;
$query =~ s/^${appclass}::(V|View):://;
my @comps = $container->get_service_list;
my @result;
$c->log->warn( Carp::shortmess(qq(Found results for "${name}" using regexp fallback)) );
$c->log->warn( 'Relying on the regexp fallback behavior for component resolution' );
$c->log->warn( 'is unreliable and unsafe. You have been warned' );
+ return shift @result;
}
return @result;
if( !ref $component && $container->has_service($name) ) {
return $container->resolve( service => $name, parameters => { context => [ $c, @args ] } );
}
+
+ return
+ if $c->config->{disable_component_resolution_regex_fallback};
+
+ my $query = qr{$name}i;
+ my @components = $container->get_service_list;
+ my @result = grep { m{$query} } @components;
+
+ if (@result) {
+ $c->log->warn( Carp::shortmess(qq(Found results for "${component}" using regexp fallback)) );
+ $c->log->warn( 'Relying on the regexp fallback behavior for component resolution' );
+ $c->log->warn( 'is unreliable and unsafe. You have been warned' );
+
+ return $container->resolve( service => $result[0], parameters => { context => [$c, @args] } );
+ }
}
return
- if $c->config->{disable_component_resolution_regex_fallback};
+ if $c->config->{disable_component_resolution_regex_fallback} && !ref $component;
# This is here so $c->comp( '::M::' ) works
my $query = ref $component ? $component : qr{$component}i;
is($@, '', "Didn't load component twice");
is($appclass->model('TopLevel::Nested')->called,1, 'COMPONENT called once');
+# relying on regex fallback
ok($appclass->model('TopLevel::Generated'), 'Have generated model');
is(ref($appclass->model('TopLevel::Generated')), 'FooBarBazQuux',
'ACCEPT_CONTEXT in generated inner package fired as expected');