[wp-hackers] pluggable functions

Ben Lobaugh lists at lobaugh.net
Mon Oct 29 00:24:25 UTC 2012


Peter,

I am with Mike here. I do not understand your reasoning. The main issue 
behind pluggable functions is that they can only be redefined once. You 
say you could have a free/pro version, that is in itself not even a good 
example. You could have a plugin order load conflict. If free loads 
before pro then that function will take precedence over the pro version.

Or back to the wp_mail() example, I have a couple plugins I use for 
clients that overload wp_mail(), however I cannot have all of those 
plugins running at the same time. Only one wp_mail() can run at a time, 
so the other plugins miss out and only the plugin that loaded first gets 
to control wp_mail().

That is the reasoning behind using hooks instead of pluggable functions. 
They just do not make sense in a plugin based architecture.

As far as the themes you are seeing making things "pluggable" this is 
not truly the case I think. If you look closer what you will probably 
notice is that all the themes by that author use the same function 
names. They are more likely trying to prevent fatal errors from blowing 
up the site if somehow the code from another theme gets fired off.

Cheers,
Ben

On 10/27/12 3:13 PM, Mike Schinkel wrote:
> Hi Peter,
>
> Thanks for answering.
>
> On Oct 27, 2012, at 5:48 PM, peter baylies <pbaylies at semperfiwebdesign.com> wrote:
>> Say you have a free and a pro version of the same plugin, and they share a
>> lot of code; and then someone upgrades to the pro version from the free
>> version, without first deactivating the free version.
> So are you just defining a "pluggable" here as  a different named file of functions and/or classes that you can swap out for your require()?
>
>> say someone else forks your plugin without changing all the function names
>> / prefixes, and someone tries to install both your plugin and the forked
>> plugin.
> Still not seeing this unless you are saying the pluggable loads one or the other but not both. I guess I need code example to fully understand.
>
> -Mike
>
> _______________________________________________
> wp-hackers mailing list
> wp-hackers at lists.automattic.com
> http://lists.automattic.com/mailman/listinfo/wp-hackers



More information about the wp-hackers mailing list