While object oriented may be the way to go with the recent developments in PHP 5, and growth of IDEs like Zend Studio and Netbeans, event driven design seems to provide a way of reducing the coupling between class modules
The separation of objects initiating the events, and the processing of the events even with auditing in place.
Fabien Potencier, has done an excellent job with Symfony, seems an excellent MVC framework, but the Symfony standalone components provide much needed functionality.
The Event dispatcher provides the much needed functionality for firing off the events (Event class) and the Event Dispatcher which hides the implementation details for processing an event. An event can even be processed multiple times by different listeners