[jifty-devel] Improving our plugin system to make things like ::Login easier

John Peacock jpeacock at rowman.com
Mon Dec 11 09:26:44 EST 2006


Jesse Vincent wrote:
> Jifty ends up handing the actions for the plugin off to:
> 
> Jifty::Plugin::Login::Action::CreateUser
> Jifty::Plugin::Login::Action::SearchUser
> Jifty::Plugin::Login::Action::UpdateUser
> Jifty::Plugin::Login::Action::DeleteUser

The actions /should/ be (at least how I tried to make them work):

MyApp::Action::CreateUser
MyApp::Action::SearchUser
MyApp::Action::UpdateUser
MyApp::Action::DeleteUser

which are just trivial wrappers around the corresponding base classes. 
My testing seems to suggest that this part is working (at least it seems 
like it from the "...dispatching..." debug statements).

The problem is that the Login base classes are currently hard-coded for 
the fields in the base model class, so either we expose a method that 
the child class can override to validate the input fields or we make the 
validator method use the correct database schema to build the validation 
on the fly (the latter being my current preferred method).  This would 
mean we could still use the normal Perl inheritance model (but see below).

Sadly, I'm in the midst of a somewhat failed system upgrade (my root 
partition got corrupted), so I'm unable to do anything constructive 
until I have that sorted out.  Computers suck sometimes... :(

> An alternate vision is brewing in my head. I'm thinking of doing 
> something like allowing plugins to manipulate the inheritance tree of 
> application classes.

But how does that inheritance happen in practice?  I'm not sure I see 
how this would be any more flexible than the on-the-fly subclassing that 
  the Jifty::Plugin::ClassLoader already does.

> Does this sound like a sane design? I think it would somewhat simplify 
> our conceptual model and be a lot more flexible. But thoughts are much 
> appreciated.

I *think* we can already get this as long as we can get the field 
validation stuff worked out.

John

-- 
John Peacock
Director of Information Research and Technology
Rowman & Littlefield Publishing Group
4501 Forbes Boulevard
Suite H
Lanham, MD  20706
301-459-3366 x.5010
fax 301-429-5748


More information about the jifty-devel mailing list