Dylan Martin wrote:
I have two questions:  1st, where is a good place to mess with a Cat
instance after its instantiated its components but not during
requests?

setup_finalize is the 'approved' hook to run stuff after all the plugins and components are setup, but before requests start. You need to be a plugin to do this obviously, and I'd recommend looking at other ways of doing what you want if possible, its not often you actually need to be a plugin.

2nd, is there a way to make Cat NOT load a model that's in
lib/MyApp/Model?

I want to pass the log object in $c->log to an Authen::Simple object
that I'm using for authentication.

Right, so this is in:
http://cpansearch.perl.org/src/JLMARTIN/Catalyst-Authentication-Credential-Authen-Simple-0.03/lib/Catalyst/Authentication/Credential/Authen/Simple.pm

You have $app right there, and it could just be passed:

https://rt.cpan.org/Ticket/Display.html?id=44778

Has no tests currently, but I'm sure you can fix that, right? :)

I could have my Login controller
check that that authentication object has the log object, but it seems
silly to do that during every request.  Maybe I should override setup
in MyApp.pm?  No, that wouldn't work because the components aren't
instantiated yet... Hmm...

With that patch, unfortunately the requirement will be that you setup __PACKAGE__->log( My::New::Logger ) (if you need to) before the call to setup.

I have a model class in lib/MyApp/Model.  I'm running my app on two
servers.  I only want to load my model class on one of my servers.  I
can delete the config settings from MyApp.conf, but it still loads,
just without my settings.  Is there a way to make it not load?  Or do
I have to actually rip the .pm file out of lib/MyApp/Model on the server
where I don't want it to load?

Pull your model out into an external module, then use Catalyst::Model::Adaptor to load it.

You can then load a different module (which is blank and contains no functionality) instead, from config.

But to answer your actual question, no - catalyst will load everything in your application namespace, there is no way to be flexible.

Cheers
t0m


_______________________________________________
List: [email protected]
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/[email protected]/
Dev site: http://dev.catalyst.perl.org/

Reply via email to