[SecurityBundle] added acl:set command
Allow overloading ContextListener::refreshUser()
[Debug] enhanced error messages for uncaught exceptions
feature #11034 [Debug] enhanced error messages for uncaught exceptions (nicolas-grekas)

This PR was merged into the 2.6-dev branch.

Discussion
----------

[Debug] enhanced error messages for uncaught exceptions

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

Before:

![capture du 2014-06-02 10 56 42](https://cloud.githubusercontent.com/assets/243674/3145281/3f8c4d24-ea34-11e3-948c-78898fb79a75.png)

After:

![capture du 2014-06-02 10 55 57](https://cloud.githubusercontent.com/assets/243674/3145283/44167a86-ea34-11e3-9786-f77f2f001638.png)

A double-click on the file name switches between short/full path name.

Commits
-------

ce66442 [Debug] enhanced error messages for uncaught exceptions
error.html.twig should contain a email value
minor #10980 error.html.twig should contain a email value (clemens-tolboom)

This PR was squashed before being merged into the 2.3-dev branch (closes #10980).

Discussion
----------

error.html.twig should contain a email value

When getting an exception on env PROD it would be nice to have an email to report to.

Current code has [email] instead of a value.

I'm not sure how to fix this as the email value should come from exception.html.twig

```html
<div id="logs">
    {% include 'TwigBundle:Exception:logs.html.twig' with { 'logs': logger.logs } only %}
</div>
```

Some hints are welcome.

Commits
-------

030b8c0 error.html.twig should contain a email value
feature #10792 [Security] Allow overloading ContextListener::refreshUser() (lstrojny)

This PR was merged into the 2.6-dev branch.

Discussion
----------

[Security] Allow overloading ContextListener::refreshUser()

Allow overloading refreshUser() for the use case of doing something special with user providers.

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

Commits
-------

b67ed43 Allow overloading ContextListener::refreshUser()
[DomCrawler] Added support for slicing nodes
feature #10699 [DomCrawler] Added support for slicing nodes (Berat Doğan, beratdogan)

This PR was squashed before being merged into the 2.6-dev branch (closes #10699).

Discussion
----------

[DomCrawler] Added support for slicing nodes

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

There are no easy way to slice nodes in specific range. I created a method using \LimitIterator. Works fine for me.

An example using is:
```php
     $crawler->filter('h1')->slice(5, 10)->each(function ($node, $i) {
         return $node->text();
     });

Commits
-------

1181bdc [DomCrawler] Added support for slicing nodes
[HttpFoundation] Add a way to match a specific scheme in RequestMatcher #10556
feature #10667 [HttpFoundation] Add a way to match a specific scheme in RequestMatcher #10556 (ProPheT777)

This PR was squashed before being merged into the 2.6-dev branch (closes #10667).

Discussion
----------

[HttpFoundation] Add a way to match a specific scheme in RequestMatcher #10556

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

Commits
-------

787ae07 [HttpFoundation] Add a way to match a specific scheme in RequestMatcher #10556
feature #9990 [SecurityBundle] added acl:set command (dunglas)

This PR was merged into the 2.6-dev branch.

Discussion
----------

[SecurityBundle] added acl:set command

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

This new command allows to set ACL directly from the command line. This useful to quickly set up an environment and for debugging / maintenance purpose.

This PR also includes a functional test system for the ACL component. As an example, it is used to test the `acl:set` command.
The provided entity class is not mandatory (tests will still be green without it) but can be useful to test other ACL related things. I can remove it if necessary.

The instantiation of the `MaskBuilder` object is done in a separate method to be easily overridable to use a custom one (e.g. the SonataAdmin one).

Commits
-------

a702124 [SecurityBundle] added acl:set command
Added handling arrows and delete in console.