This PR was merged into the master branch.
Commits
-------
c1d5f16 Update src/Symfony/Component/HttpKernel/Tests/EventListener/RouterProxyListenerTest.php
Discussion
----------
Typo fix
Just a typo fix
This PR was merged into the master branch.
Commits
-------
309067a Added Galician translation in security component
Discussion
----------
Added Galician translation in security component
This PR was merged into the master branch.
Commits
-------
f582138 [Security] fix Hungarian translation
Discussion
----------
[Security] fix Hungarian translation
Fixing a small translation mistake in the Hungarian translation.
This PR was merged into the 2.1 branch.
Commits
-------
785d365 fixes a bug when output/error output contains a % character
Discussion
----------
fixes a bug when output/error output contains a % character
This PR was merged into the master branch.
Commits
-------
fb52d94 Update src/Symfony/Component/Security/Resources/translations/security.es_CA.xlf
Discussion
----------
Update src/Symfony/Component/Security/Resources/translations/security.es...
..._CA.xlf
This PR was merged into the master branch.
Commits
-------
0a060ca Fix Russian and Ukrainian translations for Security component
Discussion
----------
[Security] Fix Russian and Ukrainian translations
This PR was merged into the master branch.
Commits
-------
67f7ed5 Added Serbian Cyrillic tanslation for security component
Discussion
----------
Added Serbian Cyrillic tanslation for security component
This PR was merged into the 2.1 branch.
Commits
-------
4991607 Fix version_compare() calls for PHP 5.5.
34def9f Handle the deprecation of IntlDateFormatter::setTimeZoneId() in PHP 5.5.
Discussion
----------
[Form] [Locale] PHP 5.5 compatibility fixes
Bug fix: yes
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: N/A
Todo: None
License of the code: MIT
Documentation PR: N/A
IntlDateFormatter::setTimeZoneId() is deprecated in PHP 5.5, which results in E_DEPRECATED errors when using the date form type. This PR works around that.
Furthermore, the version_compare() tests used in locale to detect PHP 5.5 are broken with snapshot and Git builds of PHP. I've also committed a fix for those tests in this PR.
---------------------------------------------------------------------------
by stof at 2013-01-10T08:24:15Z
shouldn't it even be done in 2.0 as it is a bugfix ?
---------------------------------------------------------------------------
by LawnGnome at 2013-01-11T00:49:11Z
Possibly — I don't know enough about Symfony's release management to know whether this is appropriate for 2.0, and I was mostly scratching my own itch, honestly.
---------------------------------------------------------------------------
by stof at 2013-01-11T01:51:35Z
well, it is a bugfix and 2.0 is also impacted, so it should be done in it.
---------------------------------------------------------------------------
by LawnGnome at 2013-01-11T02:52:21Z
The diff for 2.0 looks like it'll be just the StubIntlDateFormatter.php changes — the deprecated method isn't called in DateType on that branch, and there aren't any StubIntlDateFormatter tests on 2.0. How do you want that submitted — as a separate PR against 2.0?
---------------------------------------------------------------------------
by fabpot at 2013-01-11T07:20:18Z
@LawnGnome A separate pull request would be good. Thanks.
---------------------------------------------------------------------------
by LawnGnome at 2013-01-11T08:29:48Z
2.0 PR added as #6699.
* 2.0:
Fix version_compare() calls for PHP 5.5.
[Process] In edge cases `getcwd()` can return `false`, then `proc_open()` should get `null` to use default value (the working dir of the current PHP process)
Conflicts:
src/Symfony/Component/Form/Extension/Core/ChoiceList/MonthChoiceList.php
This PR was merged into the 2.0 branch.
Commits
-------
c7bfce9 Fix version_compare() calls for PHP 5.5.
Discussion
----------
[2.0] [Form] [Locale] PHP 5.5 compatibility fixes
Bug fix: yes
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: unknown, can't run the test suite on 2.0 due to `Doctrine\DBAL\Logging\DebugStack` not being found
Fixes the following tickets: N/A
Todo: None
License of the code: MIT
Documentation PR: N/A
A backport of #6647 to the Symfony 2.0 branch, as requested. This affects a couple of files that aren't affected on 2.1.
This PR was merged into the master branch.
Commits
-------
6b669fb Update src/Symfony/Component/Security/Resources/translations/security.nl.xlf
Discussion
----------
Update src/Symfony/Component/Security/Resources/translations/security.nl.xlf
see #6668
Some more minor tweaks
This PR was merged into the master branch.
Commits
-------
f127781 Update src/Symfony/Bundle/FrameworkBundle/Controller/Controller.php
Discussion
----------
[FrameworkBundle] add missing use statement HttpKernelInterface for forward method
Bug fix: yes
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: yes
---------------------------------------------------------------------------
by lsmith77 at 2013-01-11T13:31:01Z
+1
This PR was merged into the master branch.
Commits
-------
83d0469 Create security.no.xlf
Discussion
----------
Norwegian Translation for Security
Norwegian Translation
This PR was squashed before being merged into the master branch (closes#6705).
Commits
-------
5ee65aa Contribution to translation to Catalan of the security messages
Discussion
----------
Contribution to translation to Catalan of the security messages
Contribution to translation to Catalan of the security messages
This PR was merged into the 2.1 branch.
Commits
-------
9257b03 [Profiler] [Redis] Fix sort of profiler rows.
Discussion
----------
[Profiler] [Redis] Fix sort of redis storage profiler rows.
Bug fix: yes
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: yes
License of the code: MIT
Redis profiler rows are not sorted as expected.
We have in redis:
```
- 2011-01-01 ...
- 2011-01-02 ...
- 2011-01-03 ...
```
If we limit to 2, we'll have:
```
- 2011-01-02 ...
- 2011-01-01 ...
```
Fixed this bug by reversing array.
This PR was merged into the master branch.
Commits
-------
eb0d2ab [HttpKernel] Remove conflicting `use` from `NullLogger`
Discussion
----------
[HttpKernel] Remove conflicting `use` from `NullLogger`
Without this code dies with fatal:
> Cannot use Psr\Log\LoggerInterface as LoggerInterface because the name is already in use
---------------------------------------------------------------------------
by Seldaek at 2013-01-11T11:00:50Z
Oops :)
This PR was merged into the master branch.
Commits
-------
2617cf6 Added Turkish translation for security component
Discussion
----------
Added Turkish translation for security component
This PR was merged into the master branch.
Commits
-------
8d06c57 [HttpFoundation] Fix sentence and provide a hint at the solution for affected people
Discussion
----------
[HttpFoundation] Fix sentence and provide a hint at the solution for affected people
Until PHP 5.5 hits beta, the version number for Git builds is still 5.5.0-dev,
which is less than 5.5.0alpha1 according to version_compare(). This means that
the branches for 5.5 aren't being executed on 5.5 snapshots at present.
This PR was merged into the master branch.
Commits
-------
d027f45 [PROFILER][REDIS] Support database, auth on redis connection
Discussion
----------
[PROFILER][REDIS] Support database, auth on redis connection
Bug fix: no
Feature addition: yes
Backwards compatibility break: no
Symfony2 tests pass: yes
Allow database and password on dsn:
```yml
framework:
profiler:
dsn: redis://127.0.0.1:6379
dsn: redis://127.0.0.1:6379/3
dsn: redis://user:password@127.0.0.1:6379/3
```
Since redis uses only password for authentification, user will not be used ...
---------------------------------------------------------------------------
by shouze at 2013-01-10T16:58:02Z
👍 db selection is a must have
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.
This PR was submitted for the 2.1 branch but it was merged into the master branch instead (closes#6635).
Commits
-------
26aafff [HttpFoundation] Remove special handling of empty arrays, fixes#5506
Discussion
----------
[HttpFoundation] Remove special handling of empty arrays, fixes#5506
Bug fix: yes
Feature addition: no
Backwards compatibility break: tiny/no
Symfony2 tests pass: yes
Fixes the following tickets: #5506
License of the code: MIT
See the linked issue for details, IMO it should be removed because it's not consistently applied and just a WTF for people.
---------------------------------------------------------------------------
by vicb at 2013-01-09T11:11:06Z
👍, could you please update the changelog with the BC break ?
---------------------------------------------------------------------------
by Seldaek at 2013-01-09T11:16:44Z
If we really consider this as a BC break and document it as such then I guess it should be 2.2 only and not 2.1. @fabpot?
---------------------------------------------------------------------------
by vicb at 2013-01-09T11:28:16Z
IMO there is no such things as "tiny BC" but BCs are yes/no.
---------------------------------------------------------------------------
by fabpot at 2013-01-09T15:09:18Z
Let's do it in master only and add a note in the CHANGELOG about the BC break.