[HttpKernel] Collect data if the controller is a Closure

Use the same format as object methods to describe closures and collect
the file and the line where it's been declared.

These informations should be added in the views of the webprofiler.
[Routing] fix url generation for optional parameter having a null value
[FrameworkBundle] changed temp kernel name in cache:clear
[FrameworkBundle] removed BC break
merged branch jfsimon/issue-6203 (PR #7360)

This PR was merged into the 2.1 branch.

Commits
-------

f2ef6bc [FrameworkBundle] removed BC break
cc3a40e [FrameworkBundle] changed temp kernel name in cache:clear
7d87ecd [FrameworkBundle] fixed cahe:clear command's warmup

Discussion
----------

[FrameworkBundle] fixes cahe:clear command's warmup

Solution taken is to replace the last char of the cache directory name to create a temporary cache directory, this way the temporary cache path has the same length than the real one. I tested this on several projects, in dev and prod environments.

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | yes
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #6203

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

by jfsimon at 2013-03-13T12:32:25Z

@toloco @gergelypolonkai @ghost-x47 @stewe it would be great if you could test this patch on your projects and report result!

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

by toloco at 2013-03-13T12:41:47Z

Im sorry but have the same...

Notice: unserialize(): Error at offset 155 of 174227 bytes in /home/tolopalmer/Projects/shareandcoach/app/bootstrap.php.cache line 915

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

by jfsimon at 2013-03-13T12:45:04Z

@toloco could you paste the backtrace in a gist? and maybe the concerned file?

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

by stof at 2013-03-13T13:11:47Z

@jfsimon You probably have the same issue with the name of the temporary kernel class

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

by jfsimon at 2013-03-13T13:36:13Z

@stof if you're right, it's a nightmare. It must be possible to write a parser/fixer for serialized objects, don't you think?

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

by toloco at 2013-03-13T14:22:56Z

Here you are the gist with the stack and the bootstrap.php.cache file

https://gist.github.com/toloco/5152581

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

by mpdude at 2013-03-13T20:08:08Z

@jfsimon Writing such a parser is painting yourself in the corner.

Use a temp kernel class name of the same length as a quick fix.

#7230 could bring a solution because we might be able to inject a different ConfigCache factory during the command that intercepts and substitutes Resources before they get written into the meta file. Not sure if that PR has a chance of being picked though.

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

by toloco at 2013-03-14T08:19:58Z

So guys? we are blocked with this problem, can I help you? I can provide more stacks if it's needed

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

by mpdude at 2013-03-14T10:05:05Z

@toloco Could you please post the /home/tolopalmer/Projects/shareandcoach/app/cache/dev/appDevUrlMatcher.php.meta file? That's the one that is broken.

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

by jfsimon at 2013-03-14T10:15:20Z

@mpdude you can find its content in the gist https://gist.github.com/toloco/5152581 (1st file, 6th line)

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

by mpdude at 2013-03-14T10:24:55Z

@toloco That file should contain a serialized set of Resources, it's not in the Gist.

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

by jfsimon at 2013-03-14T10:33:12Z

@mpdude it's more visible in the raw file: ttps://gist.github.com/toloco/5152581/raw/48a1a823b5c8e6ba03936a52e8dc0d0ff1888f8a/Error+

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

by jfsimon at 2013-03-14T10:33:27Z

sorry: https://gist.github.com/toloco/5152581/raw/48a1a823b5c8e6ba03936a52e8dc0d0ff1888f8a/Error+

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

by toloco at 2013-03-14T10:37:09Z

https://gist.github.com/toloco/5160317 here you are the appDevUrlMatcher.php and meta

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

by jfsimon at 2013-03-14T10:51:46Z

@toloco I applied @mpdude's solution (have a temp kernel class name of the same length than the real one).
Could you test it to see if it fixes your problem?

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

by mpdude at 2013-03-14T10:58:46Z

@jfsimon Thanks!
@toloco If Jean-François' fix does not work, please make sure that the .meta file you posted was the broken one? I was able to unserialize it without problems.

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

by toloco at 2013-03-14T11:02:09Z

Man!!!! you are the fucking boss it works!!

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

by mpdude at 2013-03-14T11:04:30Z

@jfsimon you just made someone happy.

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

by jfsimon at 2013-03-14T11:12:39Z

@toloco @mpdude \o/
[TwigBundle] Adds service check for extension loading
merged branch jfsimon/issue-6238 (PR #7373)

This PR was squashed before being merged into the master branch (closes #7373).

Commits
-------

e372183 [TwigBundle] Adds service check for extension loading

Discussion
----------

[TwigBundle] Adds service check for extension loading

This PR adds following checks:
*  `twig.extension.form` extension is loaded if `form.extension` service is defined
*  `twig.extension.trans` extension is loaded if `translator` service is defined

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #6238
merged branch Tobion/null-for-optional-param (PR #7369)

This PR was merged into the 2.2 branch.

Commits
-------

d7a7434 [Routing] fix url generation for optional parameter having a null value

Discussion
----------

[Routing] fix url generation for optional parameter having a null value

| Q             | A
| ------------- | ---
| Bug fix?      | [yes]
| New feature?  | [no]
| BC breaks?    | [no]
| Deprecations? | [no]
| Tests pass?   | [yes|]
| Fixed tickets | [#7316]
| License       | MIT
merged branch GromNaN/master (PR #7367)

This PR was merged into the master branch.

Commits
-------

cce3a6b [HttpKernel] Collect data if the controller is a Closure

Discussion
----------

[HttpKernel] RequestDataCollector: collect data if the controller is a Closure

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

Use the same format as object methods to describe closures and collect the file and the line where it's been declared.

Currently, the `file` and `line` parameters are not shown by the webprofiler, but they could be useful to find a closure.
[HttpKernel] Updated TraceableEventDispatcher.php
merged branch janschoenherr/patch-4 (PR #7365)

This PR was squashed before being merged into the 2.2 branch (closes #7365).

Commits
-------

d9ee869 [HttpKernel] Updated TraceableEventDispatcher.php

Discussion
----------

[HttpKernel] Updated TraceableEventDispatcher.php

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

Currently, if no listeners are registered for an dispatched event, the StopwatchEvent "$eventName.'.loading'" is never being stopped.
[TwigBundle] fixed compiler pass error
[TwigBundle] added conditions for routing & httpkernel extensions
merged branch jfsimon/issue-7373 (PR #7375)

This PR was merged into the master branch.

Commits
-------

82aa135 [TwigBundle] added conditions for routing & httpkernel extensions
ad5eb7e [TwigBundle] fixed compiler pass error

Discussion
----------

Issue 7373

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #7373
merged branch BenoitLeveque/assets-install-finder-issue (PR #7341)

This PR was merged into the 2.2 branch.

Commits
-------

602cdee replace INF to PHP_INT_MAX inside Finder component.

Discussion
----------

[2.2][Finder] fix assets:install issue

I have some bundle with assets, and when i do.
```
app/console assets:install --env=prod
```
I don't have any of my file inside web/bundles, only empty first level directory like "css"
bug issue introduced by 7c66dffa6b

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

by fabpot at 2013-03-13T13:34:10Z

Can you base your patch on the 2.1 branch as the bug is also there? Thanks.

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

by BenoitLeveque at 2013-03-13T14:29:55Z

i didn't reproduce this issue on the latest commit (175cdc0fd04589d6b7abce8a705537e1366df867) on 2.1 branch

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

by taylorotwell at 2013-03-13T14:35:28Z

Yeah, it appears the Finder component's recursion is basically broken on the 2.2 branch.

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

by BenoitLeveque at 2013-03-14T13:24:52Z

@fabpot i can't reproduce this issue on the 2.1 branch because you already fix it, see 7241be9b641acff08aad294d57a209b901ff6b21
sub-requests are now created with the same class as their parent
fix validator translation
merged branch fzerorubigd/master (PR #7384)

This PR was submitted for the master branch but it was merged into the 2.2 branch instead (closes #7384).

Commits
-------

7dc1e84 fix validator translation

Discussion
----------

fix plural string in persian (fa) translation/ validation component

| Q             | A
| ------------- | ---
| Bug fix?      | yes (plural fix in persian translation)
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| License       | MIT
merged branch jfsimon/issue-7185-2.1 (PR #7381)

This PR was merged into the 2.1 branch.

Commits
-------

e51432a sub-requests are now created with the same class as their parent

Discussion
----------

[2.1] sub-requests are now created with the same class as their parent

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #7185

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

by lsmith77 at 2013-03-14T19:54:13Z

oh .. i thought this was already the case!

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

by gnutix at 2013-03-15T09:57:55Z

Thanks for the PR @jfsimon ! I just override the Request class for a custom getClientIp() method and I sure will need your fix in order for it to work in all scenarios. I'll test your patch in my project as soon as possible.
Merge branch '2.1' into 2.2

* 2.1:
  sub-requests are now created with the same class as their parent
  [FrameworkBundle] removed BC break
  [FrameworkBundle] changed temp kernel name in cache:clear
  [DoctrineBridge] Avoids blob values to be logged by doctrine
  [Security] use current request attributes to generate redirect url?
  [Validator] fix showing wrong max file size for upload errors
  [TwigBridge] removed double var initialization (refs #7344)
  [2.1][TwigBridge] Fixes Issue #7342 in TwigBridge
  [FrameworkBundle] fixed cahe:clear command's warmup
  [TwigBridge] now enter/leave scope on Twig_Node_Module
  [TwigBridge] fixed fixed scope & trans_default_domain node visitor
  [TwigBridge] fixed non probant tests & added new one
  [BrowserKit] added ability to ignored malformed set-cookie header
  [Translation] removed wriong 'use'
  [Translation] added xliff loader/dumper with resname support
  [TwigBridge] fixes

Conflicts:
	src/Symfony/Bundle/FrameworkBundle/HttpKernel.php
	src/Symfony/Component/Security/Http/HttpUtils.php
	src/Symfony/Component/Translation/Loader/XliffFileLoader.php
	src/Symfony/Component/Translation/Tests/Loader/XliffFileLoaderTest.php