Catalyst::Model::Proxy - Proxy Model Class


Catalyst-Model-Proxy documentation  | view source Contained in the Catalyst-Model-Proxy distribution.

Index


NAME

Top

Catalyst::Model::Proxy - Proxy Model Class

SYNOPSIS

Top

	# a sample use with C<Catalyst::Model::DBI::SQL::Library>

	# lib/MyApp/Model/DBI/SQL/Library/MyDB.pm
	package MyApp::Model::DBI::SQL::Library::MyDB;

	use base 'Catalyst::Model::DBI::SQL::Library';

	__PACKAGE__->config(
		dsn           => 'dbi:Pg:dbname=myapp',
		password      => '',
		user          => 'postgres',
		options       => { AutoCommit => 1 },
	);

	1;

	# lib/MyApp/Model/Other.pm	
	package MyApp::Model::Other;

	use base 'Catalyst::Model::Proxy';

	__PACKAGE__->config(
		target_class => 'DBI::SQL::Library::MyDB',
		subroutines => [ qw ( dbh load ) ] 
	);

	# get access to shared resources via proxy mechanism
	sub something {
		my $self = shift;
		my $sql = $self->load('something.sql'); #located under root/sql
		my $query = $sql->retr ( 'query' );	
		my $dbh = $self->dbh;
		# ... do some stuff with $dbh
		$dbh->do ( $query );
	}

	# back in the controller

	# lib/MyApp/Controller/Other.pm
	package MyApp::Controller::Other;

	use base 'Catalyst::Controller';	

	my $model = $c->model('Other');
	$model->something;

DESCRIPTION

Top

This is the Catalyst Model Class called Catalyst::Model::Proxy that implements Proxy Design Pattern. It enables you to make calls to target classes/subroutines via proxy mechanism. This means reduced memory footprint because any operations performed on the proxies are forwarded to the original complex ( target_class ) object. The target class model is also cached for increased performance. For more information on the proxy design pattern please refer yourself to: http://en.wikipedia.org/wiki/Proxy_design_pattern

METHODS

Top

new

Initializes DBI connection

SEE ALSO

Top

Catalyst

AUTHOR

Top

Alex Pavlovic, alex.pavlovic@taskforce-1.com

COPYRIGHT

Top


Catalyst-Model-Proxy documentation  | view source Contained in the Catalyst-Model-Proxy distribution.