<?php
use Symfony\Component\HttpFoundation\Request;
class FooRequest extends Request
{
public function getFoo()
{
return 'foo';
}
}
// Use regular Request class. Manipulate parameters.
$factory = function(array $query, array $request, array $attributes, array $cookies, array $files, array $server, $content) {
$server['bar'] = 'bar';
return new Request($query, $request, $attributes, $cookies, $files, $server, $content);
};
// Use custom Request class.
$fooFactory = function(array $query, array $request, array $attributes, array $cookies, array $files, array $server, $content) {
return new FooRequest($query, $request, $attributes, $cookies, $files, $server, $content);
};
// Create instance of regular Request with parameter manipulation.
Request::setFactory($factory);
$request = Request::createFromGlobals();
dump($request->server->get('bar'));
// Create instance of FooRequest
Request::setFactory($fooFactory);
$request = Request::createFromGlobals();
dump($request->getFoo());