[DomCrawler] fix the axes handling in a bc way

The previous fix in #11548 for handling XPath axes was not backward
compatible. In previous Symfony versions the Crawler handled nodes
by holding a "fake root node". This must be taken into account when
evaluating (relativizing) XPath expressions.
fix handling of nullable XML attributes

As @Tobion pointed out in #11394, true and 1 are valid values in
boolean XML attributes. The XmlFileLoader didn't handle 1 values
properly.
check for the correct field type

HTML allow to define different form fields with the same name.
Imagine the following form:

    <html>
        <body>
            <form action="/">
                <input type="hidden" name="option" value="default">
                <input type="radio" name="option" value="A">
                <input type="radio" name="option" value="B">
                <input type="hidden" name="settings[1]" value="0">
                <input type="checkbox" name="settings[1]" value="1" id="setting-1">
                <button>klickme</button>
            </form>
        </body>
    </html>

Since the `FormFieldRegistry` can only handle one field per name, the
hidden field option is registered first before the radio field with
the same name is evaluated. Thus, the `FormFieldRegistry` returns an
`InputFormField` instance on which the `addChoices()` method can not
be called.
Fixed #11675 ValueToDuplicatesTransformer accept "0" value

Fixed wrong return null syntax

Added transformation to null on empty arrays

Removed useless statement in condition and switched to yoda condition
bug #11676 [Form] Fixed #11675 ValueToDuplicatesTransformer accept "0" value (Nek-)

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

Discussion
----------

[Form] Fixed #11675 ValueToDuplicatesTransformer accept "0" value

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

Commits
-------

31d48ab Fixed #11675 ValueToDuplicatesTransformer accept "0" value
bug #11624 [DomCrawler] fix the axes handling in a bc way (xabbuh)

This PR was merged into the 2.3 branch.

Discussion
----------

[DomCrawler] fix the axes handling in a bc way

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

The previous fix in #11548 for handling XPath axes was not backward compatible. In previous Symfony versions the Crawler handled nodes by holding a "fake root node". This must be taken into account when evaluating (relativizing) XPath expressions.

Commits
-------

d26040f [DomCrawler] fix the axes handling in a bc way
bug #11672 [Routing] fix handling of nullable XML attributes (xabbuh)

This PR was merged into the 2.3 branch.

Discussion
----------

[Routing] fix handling of nullable XML attributes

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

As @Tobion pointed out in #11394, ``true`` and ``1`` are valid values in boolean XML attributes. The XmlFileLoader didn't handle ``1`` values properly.

Commits
-------

7b4d4b6 fix handling of nullable XML attributes
bug #11692 [DomCrawler] check for the correct field type (xabbuh)

This PR was merged into the 2.3 branch.

Discussion
----------

[DomCrawler] check for the correct field type

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

HTML allow to define different form fields with the same name. Imagine the following form:

```html
    <html>
        <body>
            <form action="/">
                <input type="hidden" name="option" value="default">
                <input type="radio" name="option" value="A">
                <input type="radio" name="option" value="B">
                <input type="hidden" name="settings[1]" value="0">
                <input type="checkbox" name="settings[1]" value="1" id="setting-1">
                <button>klickme</button>
            </form>
        </body>
    </html>
```

Since the `FormFieldRegistry` can only handle one field per name, the hidden field option is registered first before the radio field with the same name is evaluated. Thus, the `FormFieldRegistry` returns an `InputFormField` instance on which the `addChoices()` method can not be called.

Commits
-------

169b397 check for the correct field type
[DoctrineBridge] Fix empty parameter logging in the dbal logger
bug #11711 [DoctrineBridge] Fix empty parameter logging in the dbal logger (jakzal)

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

Discussion
----------

[DoctrineBridge] Fix empty parameter logging in the dbal logger

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

Commits
-------

ef23f02 [DoctrineBridge] Fix empty parameter logging in the dbal logger
Fixed the phpdoc of the VoterInterface
minor #11758 Fixed the phpdoc of the VoterInterface (stof)

This PR was merged into the 2.3 branch.

Discussion
----------

Fixed the phpdoc of the VoterInterface

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

``null`` is an accepted value for voters (it is passed when you are not voting on a specific object, for instance for roles.

Commits
-------

b591404 Fixed the phpdoc of the VoterInterface
[DependencyInjection] fix @return anno created by PhpDumper
bug #11756 [DependencyInjection] fix @return anno created by PhpDumper (jakubkulhan)

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

Discussion
----------

[DependencyInjection] fix @return anno created by PhpDumper

| Q             | A
| ------------- | ---
| Fixed tickets | ---
| License       | MIT

If a generated container is inside namespace, generated @return annos are not valid.

Commits
-------

39c4cc3 [DependencyInjection] fix @return anno created by PhpDumper
Merge branch '2.3' into 2.4

* 2.3:
  [DependencyInjection] fix @return anno created by PhpDumper
  Fixed the phpdoc of the VoterInterface
  [DoctrineBridge] Fix empty parameter logging in the dbal logger
  Fixed #11675 ValueToDuplicatesTransformer accept "0" value
  check for the correct field type
  fix handling of nullable XML attributes
  [DomCrawler] fix the axes handling in a bc way

Conflicts:
	src/Symfony/Component/DomCrawler/Tests/CrawlerTest.php
Merge branch '2.4' into 2.5

* 2.4:
  [DependencyInjection] fix @return anno created by PhpDumper
  Fixed the phpdoc of the VoterInterface
  [DoctrineBridge] Fix empty parameter logging in the dbal logger
  Fixed #11675 ValueToDuplicatesTransformer accept "0" value
  check for the correct field type
  fix handling of nullable XML attributes
  [DomCrawler] fix the axes handling in a bc way

Conflicts:
	src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9.php
	src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9_compiled.php