]> git.decadent.org.uk Git - maypole.git/commitdiff
tidied up inheritance in Mp::App - bugs 12923 & 14120
authorDavid Baird <cpan.zerofive@googlemail.com>
Sat, 20 Aug 2005 14:03:31 +0000 (14:03 +0000)
committerDavid Baird <cpan.zerofive@googlemail.com>
Sat, 20 Aug 2005 14:03:31 +0000 (14:03 +0000)
git-svn-id: http://svn.maypole.perl.org/Maypole/trunk@377 48953598-375a-da11-a14b-00016c27c3ee

Changes
lib/Maypole/Application.pm
lib/Maypole/Model/CDBI/Plain.pm

diff --git a/Changes b/Changes
index dbf4c9bf776e124afb3426fc3261f221846d1d60..8b6fa1db18177eca44716a80a05f2586efb5784f 100644 (file)
--- a/Changes
+++ b/Changes
@@ -12,6 +12,8 @@ For information about current developments and future releases, see:
     Maypole::Session::generate_unique_id() now returns the id (bug 14124)
     Implement -Init flag in Mp::Application (wishlist 14123)
     add() alias to push() in Mp::Headers (wishlist 14142)
+    Fixed inheritance issues in Mp::Application - Mp::App now manipulates the caller's 
+        @ISA directly, and doesn't inject itself into the chain (bugs 12923 & 14120)
 
 2.10 Tue 19 Jul 2005
     Multiple Template Paths added ( http://rt.cpan.org/NoAuth/Bug.html?id=13447 )
index a0e49bc5fbacf33164441c4ed5c08e769dbe8ec9..60542f987eefed9e5a4b058fc0cbe22026a7867c 100644 (file)
@@ -6,11 +6,11 @@ use UNIVERSAL::require;
 use Maypole;
 use Maypole::Config;
 
-our @ISA;
 our $VERSION = '2.11';
 
 sub import {
-    my ( $class, @plugins ) = @_;
+    shift; # not interested in this - we manipulate the caller's @ISA directly
+    my @plugins = @_;
     my $caller = caller(0);
     
     my $frontend = 'Apache::MVC' if $ENV{MOD_PERL};
@@ -26,8 +26,6 @@ sub import {
     $frontend ||= 'CGI::Maypole';
     
     $frontend->require or die "Loading $frontend frontend failed: $@";
-    # inheritance may already be set up in a multi-app mod_perl environment
-    push @ISA, $frontend unless __PACKAGE__->isa( $frontend );
 
     my $autosetup=0;
     my $autoinit=0;
@@ -57,7 +55,7 @@ sub import {
         }
     }
     no strict 'refs';
-    push @{"${caller}::ISA"}, @plugin_modules, $class;
+    push @{"${caller}::ISA"}, @plugin_modules, $frontend;
     $caller->config(Maypole::Config->new);
     $caller->config->masonx({}) if $masonx;
     $caller->setup() if $autosetup;
index 9cce6886c03f50678d7701da074edab646a2aaa0..7833c7b25e0bfe11c49e25cece5f2f6338293df3 100644 (file)
@@ -26,7 +26,7 @@ Maypole::Model::CDBI::Plain - Class::DBI model without ::Loader
 =head1 SYNOPSIS
 
     package Foo;
-    use base 'Maypole::Application';
+    use 'Maypole::Application';
     use Foo::SomeTable;
     use Foo::Other::Table;