public function executeBizRule($bizRule, $params, $data)
{
if (!$bizRule) {
return true;
}
$bits = explode('.', $bizRule, 2);
if (count($bits) == 1) {
$namespace = 'core';
$rule = $bizRule;
} else {
$namespace = $bits[0];
$rule = $bits[1];
}
if (!isset($this->rulesets[$namespace])) {
throw new Exception("Unknown ruleset '{$namespace}' for business rule '{$bizRule}'");
}
$ruleSet = $this->rulesets[$namespace];
if (!method_exists($ruleSet, $rule)) {
throw new Exception("Undefined business rule: '{$bizRule}'");
}
unset($params['userId']);
return call_user_func_array(array($ruleSet, $rule), array_merge((array) $data, $params));
}