public static function dispatch($name, $subject, $params = array(), $options = array())
{
$options = array_merge(array('modParams' => 0, 'layer' => '', 'plugin' => $subject->plugin, 'class' => $subject->name), $options);
extract($options);
if ($layer && !preg_match('/^' . $layer . './', $name)) {
$evnetName = $layer;
if ($plugin) {
$evnetName .= '.' . $plugin;
}
if ($class) {
$evnetName .= '.' . $class;
}
$evnetName .= '.' . $name;
}
$EventManager = CakeEventManager::instance();
if (!$EventManager->listeners($evnetName)) {
return false;
}
$event = new CakeEvent($evnetName, $subject, $params);
$event->modParams = $modParams;
$EventManager->dispatch($event);
return $event;
}