=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.06 (Thu Dec 17 21:41:43 2009) =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 main documentation. =head1 CONTACT Please help to make life easier and send comments/suggestions/reports to L or help with L. =head1 AUTHOR Murat Uenalan, =head1 COPYRIGHT/LICENSE (c) 2009 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