1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-04-19 07:16:36 +02:00

[feature/controller] Create Symfony Request in new function

PHPBB3-10864
This commit is contained in:
David King 2012-11-18 15:52:35 -05:00
parent 2f50d65648
commit 0f4f81b096
2 changed files with 41 additions and 4 deletions

View File

@ -7,8 +7,6 @@
*
*/
use Symfony\Component\HttpFoundation\Request;
/**
*/
@ -28,9 +26,9 @@ $user->setup('app');
// Until we fix the issue with relative paths, we have to fake path info to
// allow urls like app.php?controller=foo/bar
$controller = $request->variable('controller', '', false, phpbb_request_interface::GET);
$controller = $request->variable('controller', '');
$uri = '/' . $controller;
$symfony_request = Request::create($uri);
$symfony_request = phpbb_create_symfony_request($uri, $request);
$http_kernel = $phpbb_container->get('http_kernel');
$response = $http_kernel->handle($symfony_request);

View File

@ -7,6 +7,8 @@
*
*/
use Symfony\Component\HttpFoundation\Request;
/**
* @ignore
*/
@ -5430,3 +5432,40 @@ function phpbb_to_numeric($input)
{
return ($input > PHP_INT_MAX) ? (float) $input : (int) $input;
}
/**
* Create a Symfony Request object from a given URI and phpbb_request object
*
* @param string $uri Request URI
* @param phpbb_request $request Request object
* @return Request A Symfony Request object
*/
function phpbb_create_symfony_request($uri, phpbb_request $request)
{
$request_method = $request->server('REQUEST_METHOD');
$parameter_names = array();
$parameter_names['request'] = array_merge(
$request->variable_names(phpbb_request_interface::GET),
// POST overwrites duplicated GET parameters
$request->variable_names(phpbb_request_interface::POST)
);
$parameter_names['server'] = $request->variable_names(phpbb_request_interface::SERVER);
$parameter_names['files'] = $request->variable_names(phpbb_request_interface::FILES);
$parameter_names['cookie'] = $request->variable_names(phpbb_request_interface::COOKIE);
$parameters = array(
'request' => array(),
'cookie' => array(),
'files' => array(),
'server' => array(),
);
foreach ($parameter_names as $type => $names)
{
foreach ($names as $name)
{
$parameters[$type][$name] = $request->variable($name, '');
}
}
return Request::create($uri, $request_method, $parameters['request'], $parameters['cookie'], $parameters['files'], $parameters['server']);
}