[WebProfilerBundle] Fixed js escaping in time.html.twig
bug #9643 [WebProfilerBundle] Fixed js escaping in time.html.twig (hason)

This PR was merged into the 2.2 branch.

Discussion
----------

[WebProfilerBundle] Fixed js escaping in time.html.twig

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

For some event names I received the JavaScript error: ```Uncaught SyntaxError: Unexpected token ILLEGAL```

Commits
-------

4828350 [WebProfilerBundle] Fixed js escaping in time.html.twig
use the correct class name to retrieve mapped class' metadata and repository
[Debug] ensured that a fatal PHP error is actually fatal after being handled by our error handler
bug #9648 [Debug] ensured that a fatal PHP error is actually fatal after being handled by our error handler (fabpot)

This PR was merged into the 2.3 branch.

Discussion
----------

[Debug] ensured that a fatal PHP error is actually fatal after being handled by our error handler

This is a follow-up for #9641 where I try to restore the previous code behavior as much as possible.

| 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

Commits
-------

d7a4cfb [Debug] ensured that a fatal PHP error is actually fatal after being handled by our error handler
Fix `extract` method to avoid recalculating count() for each iteration.

Cache the value of `count($attributes)` to avoid recalculating it for each iteration of the loop.

Since this count will never change during the method execution, this change make the code a bit more efficient.
minor #9651 Fix `extract` method to avoid recalculating count() for each iteration. (fabpot)

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

Discussion
----------

Fix `extract` method to avoid recalculating count() for each iteration.

This PR was submitted on the symfony/DomCrawler read-only repository and moved automatically to the main Symfony repository (closes symfony/DomCrawler#16).

Cache the value of `count($attributes)` to avoid recalculating it for each iteration of the loop.

Since this count will never change during the method execution, this change make the code a bit more efficient.

Commits
-------

9ababf4 Fix `extract` method to avoid recalculating count() for each iteration.
bug #9647 use the correct class name to retrieve mapped class' metadata and reposi... (xabbuh)

This PR was merged into the 2.2 branch.

Discussion
----------

use the correct class name to retrieve mapped class' metadata and reposi...

...tory

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

The validation context isn't necessarily the entity being validated. In case that you added the Unique Entity constraint inside your custom type via the ``constraints`` option the validation context will be the ``Form`` class itself. Thus, not the validation context should be used to get the class metadata and the repository of the validated entity, but the entity itself should be used.

Commits
-------

cd4df11 use the correct class name to retrieve mapped class' metadata and repository
[DoctrineBridge] normalized class names in the ORM type guesser
bug #9656 [DoctrineBridge] normalized class names in the ORM type guesser (fabpot)

This PR was merged into the 2.2 branch.

Discussion
----------

[DoctrineBridge] normalized class names in the ORM type guesser

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

Commits
-------

a1b9c2e [DoctrineBridge] normalized class names in the ORM type guesser
removed observer pattern, in favour of mediator
[EventDispatcher] tweaked README
minor #9661 Removed observer pattern, in favour of mediator (fabpot)

This PR was merged into the 2.2 branch.

Discussion
----------

Removed observer pattern, in favour of mediator

| Q             | A
| ------------- | ---
| Doc fix?      | yes
| New docs?     | no
| Applies to    | *
| Fixed tickets | #9344

I don't think this is the best tool to implement the observer pattern.

I just have copied the sentence from:
https://github.com/symfony/symfony-docs/edit/2.3/components/event_dispatcher/introduction.rst

but maybe could be improved with something like:

"Symfony Event Dispatcher is a tool that allows to make your projects truly extensible, facilitating the implementation of Mediator pattern and Publish subscribe pattern"

[edit-1]
I think this could be modified also here:
https://github.com/symfony/symfony-marketing/edit/master/views/en/get_started/components.html.twig

Commits
-------

ab3e231 [EventDispatcher] tweaked README
b9ad62e removed observer pattern, in favour of mediator
minor optimalization at bundle initialization

fast check to avoid six array method calls
[HttpKernel] made a small optimization to Bundle initialization
Enabled csrf_protection by default if form.csrf_protection is enabled
bug #9662 [FrameworkBundle] Enabled csrf_protection by default if form.csrf_protection is enabled (bschussek)

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

Discussion
----------

[FrameworkBundle] Enabled csrf_protection by default if form.csrf_protection is enabled

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

This PR enables the CSRF protection services automatically if CSRF protection for forms is enabled. In this case, the CSRF protection services cannot be disabled anymore manually (the same as with the validation services).

Commits
-------

b5e5c71 [FrameworkBundle] Enabled csrf_protection by default if form.csrf_protection is enabled
minor #9664 [HttpKernel] minor optimalization at bundle initialization (fabpot)

This PR was merged into the 2.2 branch.

Discussion
----------

[HttpKernel] minor optimalization at bundle initialization

fast check to avoid six array method calls

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

That's a rebased version of #9657 on 2.2 + another optimization suggested by @GromNaN

Commits
-------

3330c40 [HttpKernel] made a small optimization to Bundle initialization
4ba6c0b minor optimalization at bundle initialization
Handled the scenario when no entity manager is passed with closure query builder.
bug #9665 [Bridge/Doctrine] ORMQueryBuilderLoader - handled the scenario when no entity manager is passed with closure query builder (jakzal)

This PR was merged into the 2.3 branch.

Discussion
----------

[Bridge/Doctrine] ORMQueryBuilderLoader - handled the scenario when no entity manager is passed with closure query builder

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

Commits
-------

a534b55 Handled the scenario when no entity manager is passed with closure query builder.