Skip to content

Instantly share code, notes, and snippets.

@zby
Created August 28, 2011 09:04
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save zby/1176451 to your computer and use it in GitHub Desktop.
Save zby/1176451 to your computer and use it in GitHub Desktop.
ioc library versus hand coded deps injection
$scope->register('routes', class => 'Lamework::Routes');
$scope->register(
'dispatcher',
class => 'Lamework::Dispatcher::Routes',
deps => 'routes'
);
$scope->register(action_namespace => (ref $self) . '::Action::');
$scope->register(
'action_builder',
class => 'Lamework::ActionBuilder',
deps => {namespace => 'action_namespace'}
);
$scope->register(layout => 'layout');
$scope->register(
'renderer',
class => 'Lamework::Renderer::Caml',
deps => 'home'
);
$scope->register(
'displayer',
class => 'Lamework::Displayer',
deps => ['home', 'renderer', 'layout']
);
# ======================
my $routes = Lamework::Routes->new();
my $dispatcher = Lamework::Dispatcher::Routes->new( routes => $routes );
my $action_namespace = (ref $self) . '::Action::';
my $action_builder = Lamework::ActionBuilder->new( namespace => $action_namespace );
my $layout = 'layout';
my $renderer = Lamework::Renderer::Caml->new( $home );
my $displayer = Lamework::Displayer->new(
home => $home,
renderer => $renderer,
layout => $layout
);
# $home becomes a free variable - maybe it needs to be a sub?
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment