Commit Graph

57 Commits

Author SHA1 Message Date
Christian Schmidt
b435e80cae [HttpFoundation] Add HeaderUtility class 2018-04-20 16:29:33 +02:00
Ross Motley
3acd548349 [HttpFoundation] Added a migrating session handler 2018-04-06 07:58:54 +02:00
Florent Mata
9e586cc7b1 [HttpFoundation] split FileException into specialized ones about upload handling 2018-04-02 18:37:24 +02:00
Nicolas Grekas
513353644b [HttpFoundation] Use parse_str() for query strings normalization 2018-03-21 14:11:49 +01:00
Florent Mata
4110d57da1 [HttpFoundation] deprecate call to Request::getSession() when Request::hasSession() returns false 2018-03-17 16:02:11 +01:00
Fabien Potencier
0c6ec3fec0 made deprecation notices less verbose 2018-02-19 13:10:10 +01:00
Fabien Potencier
c557327d54 feature #26036 Added support for getting default values in Accept headers (javiereguiluz)
This PR was squashed before being merged into the 4.1-dev branch (closes #26036).

Discussion
----------

Added support for getting default values in Accept headers

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #25877
| License       | MIT
| Doc PR        | -

Commits
-------

7e31fd94df Added support for getting default values in Accept headers
2018-02-07 05:37:38 +01:00
Javier Eguiluz
7e31fd94df Added support for getting default values in Accept headers 2018-02-07 05:37:35 +01:00
Dalibor Karlović
8776ccee03 [HttpFoundation] Add RedisSessionHandler 2018-02-04 18:18:03 +01:00
Christian Flothmann
e54109b0a0 sync upgrade and changelog files 2017-12-12 20:03:06 +01:00
Nicolas Grekas
14de848cc4 Merge branch '3.4'
* 3.4:
  bumped Symfony version to 3.4.0
  updated VERSION for 3.4.0-BETA1
  updated CHANGELOG for 3.4.0-BETA1
  Do not process bindings in AbstractRecursivePass
  don't bind scalar values to controller method arguments
  Add extra autowiring aliases
  adding AdapterInterface alias for cache.app
  Adding a new debug:autowiring command
  [HttpFoundation] Make sessions secure and lazy
  [Routing] Ensure uniqueness without repeated check
  [Console] Sync ConsoleLogger::interpolate with the one in HttpKernel
2017-10-18 17:12:27 -07:00
Nicolas Grekas
347939c9b3 [HttpFoundation] Make sessions secure and lazy 2017-10-17 00:24:46 +02:00
Tobias Schultze
0958fc442f Merge branch '3.4' 2017-10-05 18:58:28 +02:00
Tobias Schultze
989326b988 [Session] deprecate MemcacheSessionHandler
memcache extension didn't get a release since 4.5 years and is not compatible with PHP 7
2017-10-05 17:58:33 +02:00
Nicolas Grekas
522d079110 Merge branch '3.4'
* 3.4:
  [Bridge\Doctrine][FrameworkBundle] Deprecate some remaining uses of ContainerAwareTrait
  [FrameworkBundle] Fix bad interface hint in AbstractController
  [VarDumper] deprecate MongoCaster
  [HttpFoundation] deprecate using  with the legacy mongo extension; use it with the mongodb/mongodb package and ext-mongodb instead
  Fix BC layer
  Reset profiler.
  [DI] Improve some deprecation messages
  [DI] remove inheritdoc from dumped container
  [Config] Fix dumped files invalidation by OPCache
  [Security] Add Guard authenticator <supports> method
  [Cache] Fix race condition in TagAwareAdapter
  [DI] Allow setting any public non-initialized services
  [Yaml] parse references on merge keys
  treat trailing backslashes in multi-line strings
  [FrameworkBundle] Expose dotenv in bin/console about
  fix refreshing line numbers for the inline parser
  fix version in changelog
  [FrameworkBundle] Make Controller helpers final
  [DoctrineBridge] Deprecate DbalSessionHandler
2017-10-05 17:11:25 +02:00
Tobias Schultze
6651af07c2 [HttpFoundation] deprecate using with the legacy mongo extension; use it with the mongodb/mongodb package and ext-mongodb instead 2017-10-05 14:27:30 +02:00
Alexandru Furculita
37d1a212f9 Removed compatibility layer for PHP <5.4 sessions
Signed-off-by: Alexandru Furculita <alex@furculita.net>
2017-09-27 11:58:25 +03:00
Tobias Schultze
d40820b32f Merge branch '3.4' 2017-09-26 14:31:37 +02:00
Alexandru Furculita
3deb3940ab [HttpFoundation] Deprecate compatibility with PHP <5.4 sessions 2017-09-26 14:23:43 +02:00
Christian Flothmann
17c7a2d8c7 [HttpFoundation] remove deprecated features 2017-06-21 14:43:39 +02:00
Nicolas Grekas
2132333059 [HttpFoundation][FrameworkBundle] Revert "trusted proxies" BC break 2017-06-05 15:06:51 +02:00
Nicolas Grekas
72e28957e2 [BC BREAK][HttpFoundation] Request::setTrustedProxies() takes a new required $trustedHeaderSet argument 2017-04-03 11:58:17 +02:00
Nicolas Grekas
d3c960493c [HttpFoundation] Add $trustedHeaderSet arg to Request::setTrustedProxies() - deprecate not setting it 2017-03-22 21:29:40 +01:00
Nicolas Grekas
8011209a18 [HttpFoundation] Add File\Stream for size-unknown BinaryFileResponse 2017-01-09 15:30:01 +01:00
Christian Flothmann
e91a65438f [HttpFoundation] update changelog 2016-12-19 11:09:43 +01:00
Fred Cox
f904a2ba99 Add a Controller function to make it easy to return json
If the serializer component is enabled it is used to generate the json
data, if not the standard `json_encode`  function is used
2016-03-02 16:31:41 +02:00
Tobias Schultze
e8d6764e32 [HttpFoundation] change precedence of parameters in Request::get 2015-10-02 15:56:23 +02:00
Christian Flothmann
47fba88123 deprecate finding deep items in request parameters 2015-09-30 09:55:52 +02:00
Tobias Schultze
1bc6680928 [HttpFoundation] implement different locking strategies for sessions 2014-10-02 20:16:41 +02:00
Tobias Schultze
5978fcfb08 added upgrade and changelog notes for PdoSessionHandler 2014-09-29 17:13:11 +02:00
Joseph Bielawski
89f47841fe [HttpFoundation] Add ability to change JSON encoding options 2014-01-07 13:28:26 +01:00
Fabien Potencier
b1a062d232 moved RequestStack to HttpFoundation and removed RequestContext 2013-09-08 07:38:03 +02:00
Diego Saint Esteben
460c696aef [HttpFoundation] Add accessors methods to session handlers 2013-07-21 21:32:03 +02:00
Fabien Potencier
f731d99384 [HttpFoundation] tweaked previous merge (refs #8185) 2013-06-13 09:27:06 +02:00
Fabien Potencier
51d20fe647 merged branch MidnightLightning/master (PR #7634)
This PR was squashed before being merged into the master branch (closes #7634).

Discussion
----------

[2.3][HttpFoundation] PDO Session handling enhancements

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | n/a

`PdoSessionHandler` class assumes that the PDO object is set to throw exceptions, not errors. I added a line in the constructor to set that attribute, so configuration/query errors are able to be seen and caught a lot easier.

Commits
-------

ce8a441 [2.3][HttpFoundation] PDO Session handling enhancements
2013-04-20 22:37:19 +02:00
Brooks Boyd
ce8a441c10 [2.3][HttpFoundation] PDO Session handling enhancements 2013-04-20 22:37:19 +02:00
Fabien Potencier
7b32794b79 [HttpFoundation] updated CHANGELOG 2013-04-20 17:52:13 +02:00
Fabien Potencier
5a3428dc78 Revert "merged branch drak/start_on_demand (PR #7576)"
This reverts commit 7aa06818bc, reversing
changes made to 7bf8933662.
2013-04-18 07:30:58 +02:00
Drak
1f521d8d62 Coding standards
As requested by @fabpot
2013-04-11 12:33:14 +01:00
Drak
8fc2397760 [HttpFoundation] Give control over how session start on demand.
This allows control over how the session start on demand works

0: no start on demand when bags are accessed
1: start session if bags are accessed
2: no start on demand when bags are accessed but still return bag contents
2013-04-06 10:32:48 +01:00
Fabien Potencier
55f0e76495 [HttpFoundation] added missing entry in the CHANGELOG 2013-03-23 11:06:01 +01:00
Fabien Potencier
5276a096a6 [HttpFoundation] tweaked previous merge 2013-02-15 08:36:52 +01:00
Fabien Potencier
bc4a0e751e [HttpFoundation] fixed Request::create() method
When creating a Request with Request::create(), some information can
come from the URI and the server variable. Until now, it was not clear
which information had precedence over the other and as a matter of fact,
this method was not consistent.

Now, information contained in the URI always take precedence over
information coming from the server array. That makes sense as the server
array is often copied from another existing Request object.
2013-02-07 16:26:12 +01:00
Jordi Boggiano
8d06c571ed [HttpFoundation] Fix sentence and provide a hint at the solution for affected people 2013-01-11 09:20:00 +01:00
Fabien Potencier
b58e8ce9aa merged branch fabpot/kernel-refactor (PR #6459)
This PR was merged into the master branch.

Commits
-------

76fefe3 updated CHANGELOG and UPGRADE files
f7da1f0 added some unit tests (and fixed some bugs)
f17f586 moved the container aware HTTP kernel to the HttpKernel component
2eea768 moved the deprecation logic calls outside the new HttpContentRenderer class
bd102c5 made the content renderer work even when ESI is disabled or when no templating engine is available (the latter being mostly useful when testing)
a8ea4e4 [FrameworkBundle] deprecated HttpKernel::forward() (it is only used once now and not part of any interface anyway)
1240690 [HttpKernel] made the strategy a regular parameter in HttpContentRenderer::render()
adc067e [FrameworkBundle] made some services private
1f1392d [HttpKernel] simplified and enhanced code managing the hinclude strategy
403bb06 [HttpKernel] added missing phpdoc and tweaked existing ones
892f00f [HttpKernel] added a URL signer mechanism for hincludes
a0c49c3 [TwigBridge] added a render_* function to ease usage of custom rendering strategies
9aaceb1 moved the logic from HttpKernel in FrameworkBundle to the HttpKernel component

Discussion
----------

[WIP] Kernel refactor

Currently, the handling of sub-requests (including ESI and hinclude) is mostly done in FrameworkBundle. It makes these important features harder to implement for people using only HttpKernel (like Drupal and Silex for instance).

This PR moves the code to HttpKernel instead. The code has also been refactored to allow easier integration of other rendering strategies (refs #6108).

The internal route has been re-introduced but it can only be used for trusted IPs (so for the internal rendering which is managed by Symfony itself, or by a trusted reverse proxy like Varnish for ESI handling). For the hinclude strategy, when using a controller, the URL is automatically signed (see #6463).

The usage of a listener instead of a controller to handle internal sub-requests speeds up things quite a lot as it saves one sub-request handling. In Symfony 2.0 and 2.1, the handling of a sub-request actually creates two sub-requests.

Rendering a sub-request from a controller can be done with the following code:

```jinja
{# default strategy #}
{{ render(path("partial")) }}
{{ render(controller("SomeBundle:Controller:partial")) }}

{# ESI strategy #}
{{ render(path("partial"), { strategy: 'esi' }) }}
{{ render(controller("SomeBundle:Controller:partial"), { strategy: 'esi' }) }}

{# hinclude strategy #}
{{ render(path("default1"), { strategy: 'hinclude' }) }}
```

The second commit allows to simplify the calls a little bit thanks to some nice syntactic sugar:

```jinja
{# default strategy #}
{{ render(path("partial")) }}
{{ render(controller("SomeBundle:Controller:partial")) }}

{# ESI strategy #}
{{ render_esi(path("partial")) }}
{{ render_esi(controller("SomeBundle:Controller:partial")) }}

{# hinclude strategy #}
{{ render_hinclude(path("default1")) }}
```

---------------------------------------------------------------------------

by fabpot at 2013-01-03T17:58:49Z

I've just pushed a new version of the code that actually works in my browser (but I've not yet written any unit tests). I've updated the PR description accordingly.

All comments welcome!

---------------------------------------------------------------------------

by Koc at 2013-01-03T20:11:43Z

what about `render(controller="SomeBundle:Controller:partial", strategy="esi")`?

---------------------------------------------------------------------------

by stof at 2013-01-04T09:01:01Z

shouldn't we have interfaces for the UriSigner and the HttpContentRenderer ?

---------------------------------------------------------------------------

by lsmith77 at 2013-01-04T19:28:09Z

btw .. as mentioned in #6213 i think it would make sense to refactor the HttpCache to use a cache layer to allow more flexibility in where to cache the data (including clustering) and better invalidation. as such if you are refactoring HttpKernel .. it might also make sense to explore splitting off HttpCache.

---------------------------------------------------------------------------

by fabpot at 2013-01-04T19:30:07Z

@lsmith77 This is a totally different topic. This PR is just about moving things from FrameworkBundle to HttpKernel to make them more reusable outside of the full-stack framework.

---------------------------------------------------------------------------

by fabpot at 2013-01-05T09:39:52Z

I think this PR is almost ready now. I still need to update the docs and add some unit tests. Any other comments on the whole approach? The class names? The `controller` function thingy? The URI signer mechanism? The proxy protection for the internal controller? The proxy to handle internal routes?

---------------------------------------------------------------------------

by sstok at 2013-01-05T10:08:25Z

Looks good to me 👍

---------------------------------------------------------------------------

by sdboyer at 2013-01-07T18:17:08Z

@Crell asked me to weigh in, since i'm one of the Drupal folks who's likely to work most with this.

i think i've grokked about 60% of the big picture here, and i'm generally happy with what i see. the assumption that the HInclude strategy makes about working with templates probably isn't one that we'll be able to use (and so, would need to write our own), but that's not a big deal since the whole goal here is to make strategies pluggable.

so, yeah. +1.

---------------------------------------------------------------------------

by winzou at 2013-01-09T20:21:44Z

Just for my information: will this PR be merged for 2.2 version? Thanks.

---------------------------------------------------------------------------

by stof at 2013-01-09T20:41:04Z

@winzou according to the blog post announcing the beta 1 release, yes. It is explicitly listed as being one of the reason to make it a beta instead of the first RC.

---------------------------------------------------------------------------

by winzou at 2013-01-09T20:49:36Z

OK thanks, I've totally skipped this blog post.

---------------------------------------------------------------------------

by fabpot at 2013-01-10T15:26:15Z

I've just added a bunch of unit tests and fix some bugs I found while writing the tests.
2013-01-11 08:24:18 +01:00
Fabien Potencier
2aba3aa490 [HttpFoundation] added missing info in CHANGELOG 2013-01-11 08:05:42 +01:00
Fabien Potencier
76fefe3537 updated CHANGELOG and UPGRADE files 2013-01-10 17:09:48 +01:00
Drak
0cf9fcb304 [HttpFoundation] Deprecated count() and \Countable 2013-01-07 15:50:53 +00:00
Victor Berchet
577ee80003 [HttpFoundation] Move IP check methods to a HttpUtils class for reuse 2012-12-06 16:23:16 +01:00
Fabien Potencier
0a380cfdbf [HttpFoundation] disabled Request _method feature by default (should now be explicitely enabled via a call to enableHttpMethodOverride()) 2012-11-28 15:06:57 +01:00