NAME

Chloro::Role::Form - A role for form classes

VERSION

version 0.07

SYNOPSIS

package MyApp::Form::Login;

# define fields

my $form = MyApp::Form::Login->new();
my $resultset = $form->process( params => $params );

DESCRIPTION

When you write a class or role which uses Chloro, your class or role will automatically consume this role.

This role implements most of the logic related to process a user's form submission. You can provide custom versions of some of these methods to change how this processing is done.

PUBLIC METHODS

This role provides the following public methods:

$form->fields()

This returns the ungrouped Chloro::Field objects for the form.

$form->groups()

This returns the Chloro::Group objects for the form.

$form->process( params => $params )

This method takes a hash reference of user-submitted form data and processes it. The hash reference should contain field names (as found in the HTML form) as keys.

PRIVATE METHODS

This role also provides a number of private methods. Some are for Chloro's use only, but some of them are designed so that you can provide your own alternate implementation.

$form->_resultset_class()

This returns the name of the class that should be used for the form's resultset. This defaults to Chloro::ResultSet, but you can provide your own class.

If you provide a custom resultset class, you should extend Chloro::ResultSet.

$form->_validate_form( $params, $results_hash )

This method will be called with two arguments. The first is the raw parameters passed to $form->process(). The second is a hash reference where the keys are field and group names and the values are Chloro::Result::Field and Chloro::Result::Group objects.

By default, this is a no-op method, but you can provide your own implementation to do whole form validation. See Chloro::Manual::Intro for an example.

SUPPORT

Bugs may be submitted at http://rt.cpan.org/Public/Dist/Display.html?Name=Chloro or via email to bug-chloro@rt.cpan.org.

I am also usually active on IRC as 'autarch' on irc://irc.perl.org.

SOURCE

The source code repository for Chloro can be found at https://github.com/autarch/Chloro.

AUTHOR

Dave Rolsky <autarch@urth.org>

COPYRIGHT AND LICENSE

This software is Copyright (c) 2017 by Dave Rolsky.

This is free software, licensed under:

The Artistic License 2.0 (GPL Compatible)

The full text of the license can be found in the LICENSE file included with this distribution.