public function defineFunc($name, $function, $pass_sandbox = false)
{
if (is_array($name)) {
return $this->defineFuncs($name);
}
if (!$name) {
$this->validationError("Cannot define unnamed function!", Error::DEFINE_FUNC_ERROR, null, '');
}
if (is_array($function) && count($function)) {
//so you can pass array of function names and array of function and pass_sandbox flag
$pass_sandbox = isset($function[1]) ? $function[1] : false;
$function = $function[0];
}
$original_name = $name;
$name = $this->normalizeFunc($name);
if (!is_callable($function)) {
$this->validationError("Cannot define uncallable function : {$original_name}", Error::DEFINE_FUNC_ERROR, null, $original_name);
}
$this->definitions['functions'][$name] = ['function' => $function, 'pass_sandbox' => $pass_sandbox];
return $this;
}