mirror of
https://we.phorge.it/source/phorge.git
synced 2024-12-28 00:10:57 +01:00
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:
parent
d0da409eb0
commit
b26549b5fa
4 changed files with 32 additions and 9 deletions
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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(
|
||||
|
|
|
@ -18,6 +18,7 @@ final class PhabricatorStartup {
|
|||
private static $startTime;
|
||||
private static $globals = array();
|
||||
private static $capturingOutput;
|
||||
private static $rawInput;
|
||||
|
||||
|
||||
/* -( Accessing Request Information )-------------------------------------- */
|
||||
|
@ -61,6 +62,13 @@ final class PhabricatorStartup {
|
|||
return self::$globals[$key];
|
||||
}
|
||||
|
||||
/**
|
||||
* @task info
|
||||
*/
|
||||
public static function getRawInput() {
|
||||
return self::$rawInput;
|
||||
}
|
||||
|
||||
|
||||
/* -( Startup Hooks )------------------------------------------------------ */
|
||||
|
||||
|
@ -89,6 +97,8 @@ final class PhabricatorStartup {
|
|||
self::detectPostMaxSizeTriggered();
|
||||
|
||||
self::beginOutputCapture();
|
||||
|
||||
self::$rawInput = (string)file_get_contents('php://input');
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -34,13 +34,6 @@ try {
|
|||
$host = AphrontRequest::getHTTPHeader('Host');
|
||||
$path = $_REQUEST['__path__'];
|
||||
|
||||
$parser = new PhutilQueryStringParser();
|
||||
$_GET = $parser->parseQueryString(
|
||||
isset($_SERVER['QUERY_STRING']) ? $_SERVER['QUERY_STRING'] : "");
|
||||
$_POST = $parser->parseQueryString(
|
||||
(string)file_get_contents('php://input'));
|
||||
$_REQUEST = $_POST + $_GET;
|
||||
|
||||
switch ($host) {
|
||||
default:
|
||||
$config_key = 'aphront.default-application-configuration-class';
|
||||
|
|
Loading…
Reference in a new issue