$function->classpath = $CFG->dirroot.'/'.$function->classpath;
}
if (!file_exists($function->classpath)) {
- throw new coding_exception('Cannot find file with external function implementation');
+ throw new coding_exception('Cannot find file ' . $function->classpath .
+ ' with external function implementation');
}
require_once($function->classpath);
if (!class_exists($function->classname)) {
- throw new coding_exception('Cannot find external class');
+ throw new coding_exception('Cannot find external class ' . $function->classname);
}
}
// Make sure the implementaion class is ok.
if (!method_exists($function->classname, $function->methodname)) {
- throw new coding_exception('Missing implementation method of '.$function->classname.'::'.$function->methodname);
+ throw new coding_exception('Missing implementation method ' .
+ $function->classname . '::' . $function->methodname);
}
if (!method_exists($function->classname, $function->parameters_method)) {
- throw new coding_exception('Missing parameters description');
+ throw new coding_exception('Missing parameters description method ' .
+ $function->classname . '::' . $function->parameters_method);
}
if (!method_exists($function->classname, $function->returns_method)) {
- throw new coding_exception('Missing returned values description');
+ throw new coding_exception('Missing returned values description method ' .
+ $function->classname . '::' . $function->returns_method);
}
if (method_exists($function->classname, $function->deprecated_method)) {
if (call_user_func(array($function->classname, $function->deprecated_method)) === true) {
// Fetch the parameters description.
$function->parameters_desc = call_user_func(array($function->classname, $function->parameters_method));
if (!($function->parameters_desc instanceof external_function_parameters)) {
- throw new coding_exception('Invalid parameters description');
+ throw new coding_exception($function->classname . '::' . $function->parameters_method .
+ ' did not return a valid external_function_parameters object.');
}
// Fetch the return values description.
$function->returns_desc = call_user_func(array($function->classname, $function->returns_method));
// Null means void result or result is ignored.
if (!is_null($function->returns_desc) and !($function->returns_desc instanceof external_description)) {
- throw new coding_exception('Invalid return description');
+ throw new coding_exception($function->classname . '::' . $function->returns_method .
+ ' did not return a valid external_description object');
}
// Now get the function description.