[Catalyst] Constructor's instrumentation
Sebastian Riedel
sri at oook.de
Tue Oct 4 16:23:33 CEST 2005
Am 04.10.2005 um 15:54 schrieb Antoine HULIN:
> I'd like to see what's going on in a model's constructor (the class is
> named Fact::M::Storage). So I added the following statement :
>
> $c->log->info("taratata");
>
> The statement is executed but the script fails later on as shown in
> the
> following trace :
>
> gabuzo at meuh:~/Fact$ ./script/fact_server.pl
> [Tue Oct 4 15:09:47 2005] [catalyst] [debug] Debug messages enabled
> [Tue Oct 4 15:09:47 2005] [catalyst] [debug] Loaded dispatcher
> "Catalyst::Dispatcher"
> [Tue Oct 4 15:09:47 2005] [catalyst] [debug] Loaded engine
> "Catalyst::Engine::HTTP"
> [Tue Oct 4 15:09:47 2005] [catalyst] [debug] Found home "/home/
> gabuzo/Devel/Fact"
> [Tue Oct 4 15:09:48 2005] [catalyst] [info] taratata
> [Tue Oct 4 15:09:48 2005] [catalyst] [debug] Loaded components:
> .=------------------------------------------------------------------
> ----------=.
>
> |
> 1 |
> |
> Fact::C::Reference
> |
> |
> Fact::C::css
> |
> |
> Fact::V::TT
> |
>
> '=--------------------------------------------------------------------
> --------='
>
> Can't call method "isa" without a package or object reference at
> /usr/share/perl5/Catalyst/Dispatcher.pm line 387.
> Compilation failed in require at ./script/fact_server.pl line 13.
> BEGIN failed--compilation aborted at ./script/fact_server.pl line
> 13.
>
>
> Line 387 in Dispatcher is the inheritance test in setup_action() :
>
> # We only setup components that inherit from Catalyst::Base
> next unless $comp->isa('Catalyst::Base');
>
> I also replaced $c-log->info() with a print statement and got the same
> behaviour.
>
> I don't understand why this logging is so disturbing and I'd like to
> know what the right way to see what's going on in a constructor is.
So, you say that it didn't work, but you didn't say what it had done
if it worked!
I'm not very good at prophesying, but i guess you borked something in
the model class's new() method.
It always has to return a instance of itself!
--
sebastian
More information about the Catalyst
mailing list