| CGI::DataObjectMapper - Data-Object Mapper for CGI form data |
CGI::DataObjectMapper - Data-Object Mapper for CGI form data
This Module is yet experimental stage. Please wait until it will be statble.
Version 0.0103
my $q = CGI->new;
# create mapper object
my $mapper = CGI::DataObjectMapper->new(
input => $q->Vars, # this is hash ref
class_prefix => 'YourApp',
classes => [ qw( Person Data::Book ) ],
ignore => [ 'rm' ]
decode => 'utf8',
);
my $data = $mapper->data; # get mapped object
my $person_name = $data->person->name;
my $person_age = $data->person->age;
my $person_country_name = $data->person->country_name;
my $book_name = $data->data_book->title;
my $book_author = $data->data_book->author;
package YourApp::Person;
use Simo;
sub name{ ac }
sub age{ ac }
sub country_name{ ac }
sub ATTRS{ qw( name age country_name ) }
package YourApp::Data::Book;
use Simo;
sub title{ ac }
sub author{ ac }
sub ATTRS{ qw( title author ) }
# Folloing is post data
# This data is mapping YourApp::Person and YourApp::Data::Book
<form method="post" action="xxxx.cgi" >
<input type="hidden" name="rm" value="start-mode" />
<input type="text" "name="person--name" value="some" />
<input type="text" name="person--age" value="some" />
<input type="text" name="data-book--title" value="some" />
<input type="text" name="data-book--author" value="some" />
</form>
This module is data-object mapper for CGI form data.
and decode data if you want.
=head1 ACCESSORS
is input data. This must be hash ref.
Usually get hash data to use CGI::Vars method
my $q = CGI->new; $q->Vars;
is ignored attribute. This must be array ref.
is class prefix.
I want you to specify this value, because Some class names may be conficted.
is default class when class name cannot get form input attribute name.
<input type="text" name="title" > # class is omited
my $mapper = CGI::DataObjectMapper->new(
input => $q->Vars,
default_class => 'Data::Book',
classes => [ qw( Person Data::Book ) ],
);
title is attribute of Data::Book
You can get title value this way.
my $title = $data->data_book->title;
is mapped class names. this must be array ref. [ qw( Person Data::Book ) ] etc.
is method name to get attributes list
default is ATTRS. you should define ATTRS method in your class.
You also set method for each class.
$mapper->attr_method( { Perlson => 'columns', other => 'ATTRS' } )
is converted data.
You can get object.
$data = $mapper->data;
my $person_name = $data->person->name;
my $person_age = $data->person->age;
my $person_country_name = $data->person->country_name;
my $book_name = $data->data_book->title;
my $book_author = $data->data_book->author;
is charset when data is decoded. 'utf8' etc.
if this is not specify, decode is not done.
is build data from input information.
This is automatically called when data method is called.
If you set new input data, Please call this method
$mapper->input( { a => 1, b => 2 } );
$mapper->build_data;
my $data = $mapper->data; # data is updated
Yuki Kimoto, <kimoto.yuki at gmail.com>
Please report any bugs or feature requests to bug-cgi-dataobjectmapper at rt.cpan.org, or through
the web interface at http://rt.cpan.org/NoAuth/ReportBug.html. I will be notified, and then you'll
automatically be notified of progress on your bug as I make changes.
You can find documentation for this module with the perldoc command.
perldoc CGI::DataObjectMapper
You can also look for information at:
Copyright 2009 Yuki Kimoto, all rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
| CGI::DataObjectMapper - Data-Object Mapper for CGI form data |