[Catmail] Making it pluggable
    Jose Luis Martinez 
    jlmartinez-lists-catmail at capside.com
       
    Mon Sep 15 16:01:52 BST 2008
    
    
  
Terence Monteiro escribió:
> Hi,
> 
> Jose Luis Martinez wrote:
> 
>>     Pluggability should be built into catmail. I think that a pluggable
>> app should have pluggability as a core feature, and not just a set of
>> callbacks, or points where plugins should be called, because the
>> developers will never get right where people want to plug in or change
>> the default behaviour.
> 
> I agree.
Does anybody else agree on this point?
> 
>> It looks like Local, RegEx and other plugin actions would have to be
>> developed for completeness. So you would have PluginBeforeLocal,
>> PluginAfterRegEx, etc. Maybe the Cat ones could somehow be used so the
>> pluggability plugin would not have to maintain separate versions.
> 
> Since a pluggability module will only need to identify uniquely which
> action it wants to be called before or after, I think it may not be
> necessary to provide PluginBeforeLocal and so forth. $c->forward requires
> no identification of the type of action to which you are forwarding. So
> calling the correct action should not be a problem.
You are right. Basic plugabbility should be at first only for Actions. 
But once you have that, I think people would start wanting to trigger 
their plugins based on URL (and therefore, for N actions), and thats 
where PluginBeforeRegex('/somepath/.*') would come in...
For the moment I think that PluginBeforeAction('/catalyst/action') and 
PluginAfterAction(...) should be enough...
> I'm not sure I understand what you mean here. Does PluginBeforeLocal mean
> the plugged in action is itself a Local action? If so, consider the
> following syntax
> 
>   sub do_something : Local PluginBefore('/an/action') {
>     ...
>   }
> 
Maybe I'll go for the approach: "first make it simple, and then later 
extend it", after having a bit of experience, and feedback on the needs 
of plugin authors.
Jose Luis Martinez
jlmartinez at capside.com
    
    
More information about the Catmail
mailing list