Alex Pavlovic > Catalyst-Model-Proxy-0.03 > Catalyst::Model::Proxy

Download:
Catalyst-Model-Proxy-0.03.tar.gz

Dependencies

Annotate this POD

View/Report Bugs
Module Version: 0.03   Source   Latest Release: Catalyst-Model-Proxy-0.04

NAME ^

Catalyst::Model::Proxy - Proxy Model Class

SYNOPSIS ^

        # 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 ^

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 ^

new

Initializes DBI connection

SEE ALSO ^

Catalyst

AUTHOR ^

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

COPYRIGHT ^

This program is free software, you can redistribute it and/or modify it under the same terms as Perl itself.

syntax highlighting: