MooseX::StrictConstructor.3pm

Langue: en

Version: 2009-04-12 (debian - 07/07/09)

Section: 3 (Bibliothèques de fonctions)

NAME

MooseX::StrictConstructor - Make your object constructors blow up on unknown attributes

SYNOPSIS

     package My::Class;
 
     use Moose;
     use MooseX::StrictConstructor;
 
     has 'size' => ...;
 
     # then later ...
 
     # this blows up because color is not a known attribute
     My::Class->new( size => 5, color => 'blue' );
 
 

DESCRIPTION

Simply loading this module makes your constructors ``strict''. If your constructor is called with an attribute init argument that your class does not declare, then it calls ``Carp::confess()''. This is a great way to catch small typos.

Subverting Strictness

You may find yourself wanting to have your constructor accept a parameter which does not correspond to an attribute.

In that case, you'll probably also be writing a "BUILD()" or "BUILDARGS()" method to deal with that parameter. In a "BUILDARGS()" method, you can simply make sure that this parameter is not included in the hash reference you return. Otherwise, in a "BUILD()" method, you can delete it from the hash reference of parameters.

   sub BUILD {
       my $self   = shift;
       my $params = shift;
 
       if ( delete $params->{do_something} ) {
           ...
       }
   }
 
 

AUTHOR

Dave Rolsky, "<autarch@urth.org>"

BUGS

Please report any bugs or feature requests to "bug-moosex-strictconstructor@rt.cpan.org", or through the web interface at <http://rt.cpan.org>. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes. Copyright 2007-2008 Dave Rolsky, All Rights Reserved.

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