/** * Parse the given input and return either an array of attributes => values * or null if the input could not be parsed. * * @param Request $request the request object * * @return array|null */ public function parse(Request $request) { if ($request->getIsPostRequest()) { $data = count($_POST) ? $_POST : array(); foreach ($_FILES as $name => $file) { $data[$name] = \CUploadedFile::getInstanceByName($name); } return $data === array() ? null : $data; } else { if ($request->getIsPutRequest()) { $data = $request->getRestParams(); return $data && count($data) ? $data : null; } else { return null; } } }