protected function delegate(SS_HTTPRequest $request) { if (array_search(strtolower($request->Param('Control')), self::$managed_models) === false) { throw new Exception('Invalid Sub Controller "' . $request->Param('Control') . '"'); } if (!preg_match('/^[a-z0-9_\\.]*$/i', $request->Param('ID'))) { throw new Exception('Invalid ' . $request->Param('Control') . ' ID "' . $request->Param('ID') . '"'); } $subcontrollerclass = 'DBP_' . ucfirst(strtolower($request->Param('Control'))) . '_Controller'; $subcontroller = new $subcontrollerclass($request->Param('ID')); $response = $subcontroller->handleRequest($request); return $response; }