Merge branch '2.2'

* 2.2:
  fixed regression in the Finder component (it was possible to use it without using exec before, closes #6357)
  fixed a circular call (closes #6864)
  typo
  [Security] [Tests] added unit tests for the UserPasswordValidator class and made the validator service for the UserPassword constraint configurable.
  fixed wrong indentation
  tweaked previous commit
  [HttpKernel] Fix the URI signer (closes #6801)
  Add Arabic translations.
  [HttpKernel] fixed regression when rendering an inline controller and passing some objects  (closes #6822)
  [FrameworkBundle] fixed typo
  renamed some classes and Twig functions to more descriptive names (refs #6871)
  Classcollectionloader: fix traits + enhancements
  Fix a deprecated method call in the tests
  Update `composer.json` files: - to allow versions ~2.2 (>=2.2,<3.0) of Doctrine DBAL, ORM & Common - fixed Propel1 versions difference between main and bridge files - fixed Twig versions difference between main and bridge files - to allow versions ~1.11 (>=1.11,<2.0) of Twig - fixed Locale ext-intl version to accept all, not non-existing version
  Correct comment in NativeSessionStorage regarding session.save_handler
  [Security] Add PHPDoc to AuthenticationEvents
merged branch inmarelibero/2.2-RouterDebug (PR #6948)

This PR was merged into the 2.2 branch.

Commits
-------

95f0202 [FrameworkBundle] fixed wrong indentation on route debug output

Discussion
----------

[FrameworkBundle] fixed wrong indentation on route debug output

I'm not sure this is something to fix, but with this PR the debug output for a single route is like the lower part of the image, instead of the currently displayed upper part.

![output](https://f.cloud.github.com/assets/254808/120850/f2b6e8ce-6d43-11e2-9fdd-24200eb2e93b.jpg)
[FrameworkBundle] removed extra whitespaces
Micro-optimization
merged branch dlsniper/small-di-improvement (PR #6725)

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

Commits
-------

957b3af [DependencyInjection]Micro-optimization

Discussion
----------

[DependencyInjection]Micro-optimization

Bug fix: no
Feature addition: not really
Backwards compatibility break: no
Fixes the following tickets: ~
Todo: see below
License of the code: MIT
Documentation PR: ~

This adds a small micro-optimization to the container once it's dumped as PHP.

Even if the speed bump isn't that visible on the default Symfony2 Standard distribution, this doesn't break anything and it should be helpful when having a lot of parameters in the container.

I've did got better results with this applied but it would be helpful if others could confirm this to be true as well.

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

by fabpot at 2013-01-13T19:57:36Z

I'm -1 on this change. I really doubt that this has any significant perf improvement and it makes the code less clear. In fact, we rejected similar changes in the past.

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

by alexandresalome at 2013-01-13T20:32:54Z

This code is executed on compilation time, which means it's not executed in each request of production server.

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

by igorw at 2013-01-13T21:03:33Z

@alexandresalome no, this is changing the generated code that will be run on every request ;-). But I agree that it's probably not worth it. Unless there is a benchmark proving *significant* gains.

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

by dlsniper at 2013-01-13T21:05:52Z

@alexandresalome the code is execute at runtime since this changes the dumper part of it.
@fabpot I didn't knew about the changes like this but I from my recent experience with optimizing various applications this kind of change was always improving speed. Also, aside from the fact that this is a known trick, readability was taken into consideration, that's why I've added the change only in the dumper.

I've did a benchmark against a default container from Symfony2 and you can get it from here: https://gist.github.com/4526170

Feel free to close this if you want.

Note: Currently I'm trying to find and improve all the things related to speed in Symfony2, see the ticket here: symfony/symfony-standard#464 which started from this: https://groups.google.com/d/msg/symfony2/-gvguJqox3s/bjaA6Ks3EZoJ which was confirmed by the OP as well. This won't bring big performance increases, but it's a step forward imho.

Thanks!

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

by vicb at 2013-01-14T07:21:12Z

@dlsniper there seems to be a huge diff in your bench between isset and ake, any chance you have xdebug turned on ?

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

by dlsniper at 2013-01-14T08:03:35Z

@vicb no, both xhprof / xdebug where turned off. Also keep in mind that there's a ` E-5 ` so the performance impact is not that much in terms of microseconds, that's why I've said micro-optimization, but it is still there and I've had projects with more that 1.3k values in that array and the project was medium in size.

That's why I've said, someone else please test it as well and provided the benchmark, to prove that the ` isset + array_key_exists ` is faster that ` array_key_exists ` when the searched value is not null.

Also, the benchmark assumes that there are only 300 searches in the parameters array which might be more or less that usual numbers and it only retrieves the same parameter every time.

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

by vicb at 2013-01-14T08:08:57Z

@dlsniper I am not referring to absolute values but to the ratio that is high.

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

by mvrhov at 2013-01-14T08:29:12Z

isset is known to be a way faster than ake. BTW my work project which I consider relatively small has just shy of 1000 entries in parameters array

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

by vicb at 2013-01-14T09:29:59Z

@mvrhov you're right, isset is faster but [especially when xdebug is on](http://ilia.ws/archives/247-Performance-Analysis-of-isset-vs-array_key_exists.html) - 2.5x vs 10x.

I would generally :-1: micro-optims but this one is in a generated file so :+1:
[FrameworkBundle] removed obsolete comment (see 2e356c1)
[Security] fixed session creation when none is needed (closes #6917)
merged branch fabpot/avoid-session-creation (PR #6964)

This PR was merged into the 2.1 branch.

Commits
-------

8ca00c5 [Security] fixed session creation when none is needed (closes #6917)

Discussion
----------

[Security] fixed session creation when none is needed (closes #6917)

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

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

by drak at 2013-02-04T16:24:49Z

That looks good. Maybe we need a test for this logic to prevent any regression in the future?

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

by bendavies at 2013-02-04T16:30:38Z

Yep, this was exactly what i tried locally, but really wasn't familiar enough with it to be confident enough to submit it as a fix.

Works for me!

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

by bendavies at 2013-02-04T17:19:32Z

A few test failures which were added by the breaking PR #2414 in the first place.

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

by fabpot at 2013-02-04T18:00:31Z

I've fixed the tests which now really test that the session is not started.
[HttpFoundation] fixed the creation of sub-requests under some circumstancies (closes #6923, closes #6936)

This fixes the creation of a sub-request when the master request Request URI
is determined with specific server information.
merged branch hhamon/user_password_constraints_namespace (PR #6960)

This PR was merged into the 2.2 branch.

Commits
-------

35b62ac [Security] renamed Constraint namespace to Constraints for validator classes in order to be consistent with the whole current validator API.

Discussion
----------

[Security] renamed Constraint namespace to Constraints for validator classes in order to be consistent with the whole current validator API.

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | yes (for people already using the ``UserPassword`` constraint class in their code)
| Deprecations? | yes
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -
Removed underscores from test method names to be consistent with other components.

It is more common to use fully camel-cased names for test methods. Only some of the test methods are called with underscore notation. To avoid confusion it is better to be consistent.
merged branch jakzal/no-underscored-methods-in-tests-master (PR #6885)

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

Commits
-------

c5d15f8 [PropertyAccess] Removed underscores from test method names to be consistent with other components.

Discussion
----------

[PropertyAccess] Removed underscores from test method names

Removed underscores from test method names to be consistent with other components.

This was previously done in #6695, but was partly lost when merging with master (PropertyAccess component was created, so the location of tests has changed).

| Q              | A                                        |
|--------------|--------------------------------|
| Bug fix?          | no |
|New feature? | no |
|BC breaks?    | no |
|Deprecations? |	no |
|Tests pass? | yes |
|Fixed tickets | n/a |
|License | MIT |
|Doc PR | n/a |
updated VERSION for 2.2.0-RC1
Added BCrypt password encoder.
merged branch TerjeBr/bcrypt-password-encoder-2 (PR #6808)

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

Commits
-------

0cb74a2 Added BCrypt password encoder.

Discussion
----------

Bcrypt password encoder

Bug fix: no
Feature addition: yes
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: #5932
License of the code: MIT
Documentation PR: symfony/symfony-docs#1936

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

by TerjeBr at 2013-01-19T18:53:21Z

Finishing PR #5974

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

by jalliot at 2013-01-20T14:07:54Z

This looks very good! :)
But be careful to CS or this will not be merged.

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

by TerjeBr at 2013-01-20T14:17:35Z

I do not understand. What do you mean by "CS"?

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

by jalliot at 2013-01-20T14:20:33Z

[Coding standards](http://symfony.com/doc/current/contributing/code/standards.html).
You should run [PHP-CS-Fixer](https://github.com/fabpot/PHP-CS-Fixer) on your code to fix it.

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

by TerjeBr at 2013-01-20T14:47:23Z

The only thing php-cs-fixer.phar did was to realign some of the doc-block comments.
But thank you any way for pointing out the script to me.

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

by TerjeBr at 2013-01-20T15:52:07Z

Why does it look like @elnur added the commits? It was me.

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

by stof at 2013-01-20T16:32:12Z

@TerjeBr check your git configuration to be sure it uses your email address when committing

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

by TerjeBr at 2013-01-20T17:30:58Z

Now the commit is in my name.
But see what happens if I squash the commit wit git rebase ....

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

by TerjeBr at 2013-01-20T17:33:08Z

Now it looks like elnur added the commit.

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

by stof at 2013-01-26T15:57:59Z

@fabpot is there a chance to have this in 2.2 ?
Use REQUEST_TIME_FLOAT if available.

This will give a more correct initialization time when using the
DataCollectors without a KernelInterface implementation such as Silex.
fixed CS
Add "'property_path' => false" deprecation message for forms
merged branch henrikbjorn/time-collector (PR #6971)

This PR was merged into the master branch.

Commits
-------

bd0709c Use REQUEST_TIME_FLOAT if available.

Discussion
----------

Use REQUEST_TIME_FLOAT if available.

This will give a more correct initialization time when using the
DataCollectors without a KernelInterface implementation such as Silex.

`REQUEST_TIME_FLOAT` is available as of 5.4.0

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

by henrikbjorn at 2013-02-05T09:59:05Z

@fabpot Should be good now with passing test :)
[Security] fixed interface implementation (closes #6974)