lookup_handler("public", $method); if ($override) { $handler = $override; } else { $handler = new Handler_Public($_REQUEST); } if (strpos($method, "_") === 0) { user_error("Refusing to invoke method $method which starts with underscore.", E_USER_WARNING); header("Content-Type: text/json"); print Errors::to_json(Errors::E_UNAUTHORIZED); $span->setAttribute('error', Errors::E_UNAUTHORIZED); return; } if (implements_interface($handler, "IHandler") && $handler->before($method)) { $span->addEvent("construct/$method"); if ($method && method_exists($handler, $method)) { $reflection = new ReflectionMethod($handler, $method); if ($reflection->getNumberOfRequiredParameters() == 0) { $span->addEvent("invoke/$method"); $handler->$method(); } else { user_error("Refusing to invoke method $method which has required parameters.", E_USER_WARNING); header("Content-Type: text/json"); print Errors::to_json(Errors::E_UNAUTHORIZED); $span->setAttribute('error', Errors::E_UNAUTHORIZED); } } else if (method_exists($handler, 'index')) { $span->addEvent("index"); $handler->index(); } $span->addEvent("after/$method"); $handler->after(); return; } header("Content-Type: text/plain"); print Errors::to_json(Errors::E_UNKNOWN_METHOD); $span->setAttribute('error', Errors::E_UNKNOWN_METHOD);