=head1 DISCLAIMER
Class::Maker
============
! THIS IS ALPHA SOFTWARE - DO NOT USE THIS MODULE !
THIS SOFTWARE SHIPS WITHOUT ANY WARRANTY OF ANY KIND
Everything except the basic functionalities are still under constant
reorganisation. Also major parts of the documentation are wrong or already
outdated.
=head1 NAME
Class::Maker - classes, reflection, schemas, serialization, attribute- and multiple inheritance
=head1 VERSION
0.05.98 (Mon Jun 9 10:23:26 2008)
=head1 DESCRIPTION
AUDIENCE
This package is for the intermediate-to-pro oo-perl programmer. While it has basicly
similarities to Class::Struct and Class::MethodMaker, this package has significant
differences and additional functionalities.
ATTRIBUTE INHERITANCE
Because all attributes are accessible through accessors, they are
following ISA inheritance / overloading as normal methods do.
MULTIPLE INHERITANCE
Per default, Class::Maker cares for constructing all parent objects via its 'new'
or '_init' constructors. It uses a trick to derive from even non Class::Maker
classes correctly.
REFLECTION/CLASS INTROSPECTION
Java-like reflection or recursive class introspectiong for methods/attribute/
triggers are available during runtime. This is helpfull for implementing
persistance, serialization, class tree charting and some other nifty tricks.
OBJECT PERSISTANCE
A recursive Tangram (see cpan) schema generator is also available, which
significantly eases the use of object-persistance as long as you use
Class::Maker classes and following some simple guidelines.
=head1 SYNOPSIS
use Class::Maker qw(:all);
class Something;
class Person,
{
isa => [ 'Something' ],
public =>
{
scalar => [qw( name age internal )],
},
private
{
int => [qw( internal )],
},
};
sub Person::hello
{
my $this = shift;
$this->_internal( 2123 ); # the private one
printf "Here is %s and i am %d years old.\n", $this->name, $this->age;
};
my $p = Person->new( name => Murat, age => 27 );
$p->hello;
=head1 INSTALLATION
I highly recommend to use CPAN for one-stop-shop installation:
perl -MCPAN -e "install Class::Maker"
=head1 PREREQUISITES
Following modules get automatically installed via the CPAN module. See INSTALLATION above. Data::Type has a mechanism
for delayed loading of modules. This means modules are loaded only when the used types require
them, not all at once.
=over 1
=item XML::LibXSLT (0)
=item Data::Dumper (0)
=item IO::Extended (0)
=item Error (0.15)
=item Algorithm::FastPermute (0.05)
=item Array::Compare (1.03)
=back
=head1 READON
Visit the L<Class::Maker> main documentation.
=head1 CONTACT
Sourceforge L<http://sf.net/projects/datatype> is hosting a project dedicated to this module. And I enjoy receiving your comments/suggestion/reports also via L<http://rt.cpan.org> or L<http://testers.cpan.org>.
=head1 AUTHOR
Murat Uenalan, <muenalan@cpan.org>
=head1 COPYRIGHT/LICENSE
(c) 2008 by Murat Uenalan. All rights reserved. Note: This program is
free software; you can redistribute it and/or modify it under the same
terms as perl itself