Пример #1
0
 /**
  * Runs through defined API routines once. This call should be executed
  * once per request.
  *
  * @return bool
  */
 public static function run()
 {
     try {
         $response = new \veneer\http\response();
         $path = \veneer\util::request_path();
         $endpoint_version = array_shift($path);
         $endpoint_name = array_shift($path);
         $request_params = \veneer\util::request_params();
         $endpoint_version = \veneer\util::version('class', $endpoint_version);
         $class = sprintf('\\veneer\\endpoint\\%s\\%s', $endpoint_name, $endpoint_version);
         if (class_exists($class)) {
             $instance = new $class();
             $instance->set_request_params($request_params);
             $instance->invoke('/' . implode('/', $path), $response);
         } else {
             $handler_param = self::get_default('output_handler_param');
             $default_handler = self::get_default('output_handler');
             $response->configure_handler($handler_param, $default_handler, $request_params);
             if (is_callable(self::get_default('no_endpoint_handler'))) {
                 call_user_func(self::get_default('no_endpoint_handler'), $response);
             } else {
                 self::no_endpoint($response);
             }
         }
         $response->send();
     } catch (\Exception $e) {
         print $e->getMessage();
     }
 }