NAME
Fukurama::Class::Extends - Pragma to extend class inheritation
VERSION
Version 0.01 (alpha)
SYNOPSIS
package MyClass;
use Fukurama::Class::Extends('MyParent');
DESCRIPTION
This pragma-like module provides some extra check features for inheritation at compiletime. It would check that your parent Module is loaded and that in multi-inheritation there is no subroutine-conflict. Use Fukurama::Class instead, to get all the features for OO.
CONFIG
You can define the check-level which describes how the module will check inheritations. The following levels are allowed:
- $Fukurama::Class::Extends::CHECK_LEVEL = $Fukurama::Class::Extends::LEVEL_DISABLE
-
There is no check. If you use this level, it's like you use use base qw(...). There are no side effects. This level is recommended for production.
- $Fukurama::Class::Extends::CHECK_LEVEL = $Fukurama::Class::Extends::LEVEL_CHECK_NONE
-
All registration processes are executed, but there would be no check.
- $Fukurama::Class::Extends::CHECK_LEVEL = $Fukurama::Class::Extends::LEVEL_CHECK_REGISTERED
-
All classes, which use this module would checked for Multi-inheritation-conflicts.
- $Fukurama::Class::Extends::CHECK_LEVEL = $Fukurama::Class::Extends::LEVEL_CHECK_CHILDS
-
All classes, which use this module AND all childs of these classes would checked for Multi-inheritation-conflicts. This is the default behavior when you does'n change the check-level.
- $Fukurama::Class::Extends::CHECK_LEVEL = $Fukurama::Class::Extends::LEVEL_CHECK_ALL
-
All classes would checked for Multi-inheritation-conflicts. This means really ALL classes. Even all perl-internals. This level is only for the sake of completeness.
EXPORT
-
METHODS
- extends( child_class:STRING, childs_parent_class:STRING ) return:VOID
-
Helper-method, which would executed by every pragma usage.
- run_check() return:VOID
-
Helper method for static perl (see Fukurama::Class > BUGS)
- register_class_tree() return:VOID
-
Helper method to register needed handler in Fukurama::Class::Tree
AUTHOR, BUGS, SUPPORT, ACKNOWLEDGEMENTS, COPYRIGHT & LICENSE
see perldoc of Fukurama::Class