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.
NAME
Class::Maker - classes, reflection, schemas, serialization, attribute-
and multiple inheritance
EXAMPLE
use Class::Maker qw(class);
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 );
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;
DESCRIPTION
Class::Maker introduces the concept of classes via a "class" function.
It automatically creates packages, ISA, new and attribute-handlers (accessors).
The classes can inherit from common perl-classes and class-maker classes.
Single and multiple and attribute inheritance is supported.
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.
AUTHOR
Murat Uenalan (muenalan@cpan.org)
COPYRIGHT
(c) 2001 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.