Implement PhutilRequest parser #2

Summary:
D6278 kind of got closed and commited, this is the actual direction.

Ref T3432

Depends on D6277

Test Plan: Keep using the site

Reviewers: epriestley

Reviewed By: epriestley

CC: aran, Korvin, mbishopim3

Maniphest Tasks: T3432

Differential Revision: https://secure.phabricator.com/D6283
This commit is contained in:
Gareth Evans
2013-06-24 08:21:42 -07:00
committed by epriestley
parent d0da409eb0
commit b26549b5fa
4 changed files with 32 additions and 9 deletions

View File

@@ -81,10 +81,27 @@ class AphrontDefaultApplicationConfiguration
);
}
/**
* @phutil-external-symbol class PhabricatorStartup
*/
public function buildRequest() {
$parser = new PhutilQueryStringParser();
$data = array();
$raw_input = PhabricatorStartup::getRawInput();
if (strlen($raw_input)) {
$data += $parser->parseQueryString($raw_input);
} else if ($_POST) {
$data += $_POST;
}
$data += $parser->parseQueryString(
isset($_SERVER['QUERY_STRING']) ? $_SERVER['QUERY_STRING'] : "");
$request = new AphrontRequest($this->getHost(), $this->getPath());
$request->setRequestData($_POST + $_GET);
$request->setRequestData($data);
$request->setApplicationConfiguration($this);
return $request;
}

View File

@@ -3,6 +3,9 @@
final class PhabricatorFileDropUploadController
extends PhabricatorFileController {
/**
* @phutil-external-symbol class PhabricatorStartup
*/
public function processRequest() {
$request = $this->getRequest();
$user = $request->getUser();
@@ -10,7 +13,7 @@ final class PhabricatorFileDropUploadController
// NOTE: Throws if valid CSRF token is not present in the request.
$request->validateCSRF();
$data = file_get_contents('php://input');
$data = PhabricatorStartup::getRawInput();
$name = $request->getStr('name');
$file = PhabricatorFile::newFromXHRUpload(