[wp-hackers] Plugin API: Unique ID explanation

Jacob Santos wordpress at santosj.name
Fri Aug 7 22:19:18 UTC 2009


http://core.trac.wordpress.org/ticket/10535 is the correct link, I 
apologize for the confusion. The point is that people are using:

add_action('whatever', array(&$this, 'method'));

and people are attempting to make it to where if you do,

remove_action('whatever', array(&$this, 'method'));

that it will in fact remove the method from 'whatever'.

Currently, there are many use cases where it still does not. An attempt 
was made in October of 2007 to make it to where it does, however, the 
algorithm was flawed and only worked with a few use cases. The attempt 
is being made now, to extend the use cases that it works.

My contention was that instead of working around design flaws used by 
plugin developers that plugin developers should understand that 
functions and static methods do not suffer from the above. Every use 
case will work correctly. Furthermore, the hope to get the code to work 
on PHP4 is a fantasy, a farce.

It is a fun problem with an interesting solution, which is what peaked 
my curiosity. However, these two examples are far better as they don't 
suffer from WTF?s.

add_action('whatever', 'some_function');

add_action('whatever', array( 'some_class', 'some_function' ));

These two examples work with both PHP4 and PHP5.

I'll explain further that as many times as the function is used, it is a 
really bad idea to use the the first example as the overhead is quite a 
bit (overall it is small, but when you start to use it around 3000 to 
4000 times, the total time just from that function starts to exceed 1 
second (which is really, really just terrible). Good news is that most 
people will never get around that amount (or so we hope).

Jacob Santos


More information about the wp-hackers mailing list