public static function detachClassBehavior($name, $class = null, $priority = false)
{
if (!$class && function_exists('get_called_class')) {
$class = get_called_class();
}
if (!$class) {
throw new TInvalidOperationException('component_no_class_provided_nor_late_binding');
}
$class = strtolower($class);
if (!is_string($name)) {
$name = get_class($name);
}
if (empty(self::$_um[$class]) || !isset(self::$_um[$class][$name])) {
return false;
}
$param = self::$_um[$class][$name];
$behavior = $param->getBehavior();
unset(self::$_um[$class][$name]);
$behaviorObject = is_string($behavior) ? new $behavior() : $behavior;
return $behaviorObject->raiseEvent('fxDetachClassBehavior', null, $param);
}