This repository has been archived on 2023-08-20. You can view files and clone it, but cannot push or open issues or pull requests.
symfony/src/Symfony/Component/HttpFoundation
Nicolas Grekas a4f3baae37 Merge branch '3.0'
* 3.0:
  [ClassLoader] Use symfony/polyfill-apcu
  [HttpFoundation][Cookie] Cookie DateTimeInterface fix
  bumped Symfony version to 2.8.3
  updated VERSION for 2.8.2
  updated CHANGELOG for 2.8.2
  bumped Symfony version to 2.7.10
  updated VERSION for 2.7.9
  updated CHANGELOG for 2.7.9
  bumped Symfony version to 2.3.38
  updated VERSION for 2.3.37
  update CONTRIBUTORS for 2.3.37
  updated CHANGELOG for 2.3.37
  added missing requirement
  removed obsolete tests, fixed composer.json
  do not ship with a custom rng implementation
  [Console] HHVM read input stream bug
  Fix max width for multibyte keys in choice question
  [Console] Display console application name even when no version set
  Remove calls to non-existing method
  Remove empty statements.
2016-01-15 10:32:41 +01:00
..
File Merge branch '2.3' into 2.7 2015-09-29 14:06:14 +02:00
Session Merge branch '2.8' into 3.0 2016-01-07 14:38:51 +01:00
Tests Merge branch '3.0' 2016-01-15 10:32:41 +01:00
.gitignore Added missing files .gitignore 2013-07-21 14:12:18 +02:00
AcceptHeader.php [2.3] CS And DocBlock Fixes 2014-12-22 16:58:09 +01:00
AcceptHeaderItem.php fixed types in phpdocs 2014-04-16 12:30:19 +02:00
ApacheRequest.php [HttpFoundation] do not use server variable PATH_INFO because it is already decoded and thus symfony is fragile to double encoding of the path 2013-04-12 17:03:10 +02:00
BinaryFileResponse.php Merge branch '2.3' into 2.7 2015-12-18 16:35:58 +01:00
CHANGELOG.md [HttpFoundation] change precedence of parameters in Request::get 2015-10-02 15:56:23 +02:00
composer.json add missing symfony/polyfill-php55 dependency 2015-12-28 15:56:15 +01:00
Cookie.php [HttpFoundation][Cookie] Cookie DateTimeInterface fix 2016-01-14 17:21:08 +01:00
ExpressionRequestMatcher.php [HttpFoundation] added ExpressionRequestMatcher 2013-09-19 12:59:11 +02:00
FileBag.php remove api tags from code 2015-09-28 19:11:22 +02:00
HeaderBag.php Merge branch '2.3' into 2.7 2016-01-12 18:44:11 +01:00
IpUtils.php [HttpFoundation] Fixes /0 subnet handling in IpUtils 2015-10-19 13:54:29 +02:00
JsonResponse.php Merge branch '2.7' into 2.8 2016-01-13 11:28:07 +01:00
LICENSE Update copyright year 2016-01-01 23:53:47 -03:00
ParameterBag.php fix error level for deprecation 2015-12-17 22:45:56 +01:00
phpunit.xml.dist Add missing exclusions from phpunit.xml.dist 2015-11-18 09:19:46 +01:00
README.md Rely on iconv and symfony/polyfill-* 2015-10-28 03:15:07 +01:00
RedirectResponse.php remove api tags from code 2015-09-28 19:11:22 +02:00
Request.php feature #17318 [HttpFoundation] Allow to get all the mime types associated to a format in the Request (Ener-Getick) 2016-01-14 08:55:34 +01:00
RequestMatcher.php Merge branch '2.3' into 2.7 2015-09-29 14:06:14 +02:00
RequestMatcherInterface.php remove api tags from code 2015-09-28 19:11:22 +02:00
RequestStack.php unified return null usages 2014-04-18 22:38:54 +02:00
Response.php Merge branch '2.8' into 3.0 2015-12-05 12:13:14 +01:00
ResponseHeaderBag.php Merge branch '2.3' into 2.7 2016-01-12 18:44:11 +01:00
ServerBag.php Handled bearer authorization header in REDIRECT_ form 2015-02-10 11:35:13 +08:00
StreamedResponse.php Add more callable type hints 2015-10-05 18:52:37 +02:00

HttpFoundation Component

HttpFoundation defines an object-oriented layer for the HTTP specification.

It provides an abstraction for requests, responses, uploaded files, cookies, sessions, ...

In this example, we get a Request object from the current PHP global variables:

use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;

$request = Request::createFromGlobals();
echo $request->getPathInfo();

You can also create a Request directly -- that's interesting for unit testing:

$request = Request::create('/?foo=bar', 'GET');
echo $request->getPathInfo();

And here is how to create and send a Response:

$response = new Response('Not Found', 404, array('Content-Type' => 'text/plain'));
$response->send();

The Request and the Response classes have many other methods that implement the HTTP specification.

Resources

You can run the unit tests with the following command:

$ cd path/to/Symfony/Component/HttpFoundation/
$ composer install
$ phpunit