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