This is a very good article, I especially enjoyed the code

[code]
$sparklyThing = new ObjectOfGreatUsefulness();
call_user_func(array($sparklyThing, ‘sparkle’));
[/code]

Have you ever thought of / tried having callbacks registered with an object fulfilling the observer pattern? it can be used to provide application-wide events and object events. It becomes especially useful when combined with other design patterns.