public function eventDispatch($eventName, $data = null)
{
if ($this->_logDebugEnabled) {
$this->_logger->debug("Dispatching event: {$eventName}");
}
$listeners = $this->getBeansListeningOn($eventName);
foreach ($this->_beanDefinitionProviders as $provider) {
$listeners = array_merge($listeners, $provider->getBeansListeningOn($eventName));
}
$eventName = 'on' . ucfirst($eventName);
foreach ($listeners as $beanName) {
$bean = $this->getBean($beanName);
$bean->{$eventName}($data);
}
}