[HttpFoundation] Update QUERY_STRING when overrideGlobals
[WebProfilerBundle] Fixed double height of canvas
[Process] Fix tests when pcntl is not available.
minor #11539 [Process] Fix tests when pcntl is not available. (jakzal)

This PR was merged into the 2.3 branch.

Discussion
----------

[Process] Fix tests when pcntl is not available.

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

It's solved the same way in the [AbstractProcessTest](https://github.com/symfony/symfony/blob/3b837dc5c102b8210b7038029416c0524d5f458b/src/Symfony/Component/Process/Tests/AbstractProcessTest.php#L602-L603).

Commits
-------

e40f24f [Process] Fix tests when pcntl is not available.
Fixed self-reference in 'service_container' service breaks garbage collection (and clone).
bug #11422 [DependencyInjection] Self-referenced 'service_container' service breaks garbage collection (sun)

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

Discussion
----------

[DependencyInjection] Self-referenced 'service_container' service breaks garbage collection

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

#### Problem
1. `Container::__construct()` sets the `service_container` service ID to a self-reference of `$this`.
1. This breaks PHP garbage collection (as well as `clone`).

#### Background
* As explained in [Reference Counting Basics](http://php.net/manual/en/features.gc.refcounting-basics.php), PHP is not able to destruct and garbage collect variables that contain a reference to itself, because the `refcount` is always > 0.

#### Example Use-Case
A precompiled container that is cloned for multiple tests (because `::compile()` can be slow).

```php
$precompiled = new ContainerBuilder();
// ...
$precompiled->compile();
foreach ($precompiled->getServiceIds() as $id) {
  if ($precompiled->initialized($id)) {
    $precompiled->set($id, null);
  }
}
$precompiled_clean = clone $precompiled;
$precompiled = NULL;
// ...
foreach ($tests as $test) {
  $container = clone $precompiled_clean;
  // Required without this PR:
  $container->set('service_container', $container);
  // ...
}
```

* **Actual result [master]:**
  All references to the original `$precompiled` container are not destructed and cleaned up, because `$precompiled` still references itself, which can cause terribly hard to debug defects due to stale reference pointers in memory (especially with `ContainerAware` services, or things like e.g. PDO connections), as well as high memory consumption, etc.

* **Expected result [PR]:**
  No references to `$precompiled` are left; everything is shut down, cleaned up, and garbage-collected upon `$precompiled = NULL;`

#### Proposed solution
1. Hard-code a special behavior for the service ID `service_container`.
1. Remove the self-reference.
1. For now (until next major release), ensure that all `Container` methods work identically to before — instead of throwing exceptions when e.g. trying to set `service_container` to something that isn't `$this`… (which is technically possible right now, but the operation doesn't remotely make sense)

#### API changes
Per (3) above, this PR is backwards-compatible.  However, for the sake of full disclosure, users may experience the following super-micro changes compared to HEAD:

1. The following method no longer exists in a dumped Container, because it is no longer a registered service:

  ```php
      protected function getServiceContainerService()
      {
          throw new RuntimeException('You have requested a synthetic service ("service_container"). The DIC does not know how to construct this service.');
      }
  ```
  But given the exception, you weren't able to call it anyway.
1. The order/position of `service_container` in the array returned by `Container::getServiceIds()` may be different.

  But that array has no particular order to begin with.

  (Only the component's own unit tests are expecting an identical result at times, which is why I added the hard-coded ID via `$id[]` last, instead of initializing it first with `$id` already.)
1. `$container->set('service_container', $not_the_container);` no longer works.

Commits
-------

440322e Fixed self-reference in 'service_container' service breaks garbage collection (and clone).
fix some docblocks
built-in server: exit when docroot does not exist

When the server:run command is run with an invalid document root
directory (for example, when being in the app directory and not
changing the document root to ../web/), the command crashes on Windows
with a 267 exit code. On Linux, the server starts but just publishes
internal server errors.
minor #11483 fix some docblocks (xabbuh)

This PR was merged into the 2.3 branch.

Discussion
----------

fix some docblocks

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

Commits
-------

1775da5 fix some docblocks
fix axes handling in Crawler::filterXPath()

Due to some limitations in the relativize() method, it was not
possible to use XPath axes other than descendant or descendant-or-self
in the filterXPath() method of the Crawler class. This commit adds
support for the ancestor, ancestor-or-self, attribute, child,
following, following-sibling, parent, preceding, preceding-sibling and
self axes.
fixed whitespace in Twig form template
bug #11548 [Component][DomCrawler] fix axes handling in Crawler::filterXPath() (xabbuh)

This PR was merged into the 2.3 branch.

Discussion
----------

[Component][DomCrawler] fix axes handling in Crawler::filterXPath()

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

Due to some limitations in the ``relativize()`` method, it was not possible to use XPath axes other than ``descendant`` or ``descendant-or-self`` in the ``filterXPath()`` method of the ``Crawler`` class. This commit adds support for the ``ancestor``, ``ancestor-or-self``, ``attribute``, ``child``, ``following``, ``following-sibling``, ``parent``, ``preceding``, ``preceding-sibling`` and ``self`` axes.

The only axis missing after this is the ``namespace`` axis. Filtering for namespace nodes returns ``DOMNameSpaceNode`` instances which can't be passed to the ``add()`` method.

Commits
-------

8dc322b fix axes handling in Crawler::filterXPath()
[DependencyInjection] fixed missing 'factory-class' attribute in XmlDumper output

Symfony\Component\DependencyInjection\Dumper\XmlDumper didn't write 'factory-class' XML attribute for definitions on which setFactoryClass() was called.

This caused the Container[Builder] to throw an exception when the relevant service is being requested/initiated after loading the dumped XML:

`Uncaught Exception Symfony\Component\DependencyInjection\Exception\RuntimeException: "Cannot create service "xxx" from factory method without a factory service or factory class." at /<path>/<to>/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/ContainerBuilder.php`

Fixed the problem, and updated the relevant test fixture.
Fix incorrect romanian plural translations
minor #11557 Fix incorrect romanian plural translations (moldcraft)

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

Discussion
----------

Fix incorrect romanian plural translations

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

In romanian plural translations was only one or two forms, but is required three, because it throws errors when transchoice has number that is translated to the third form.

Before fix

![staticshot_04-08-2014_11-27-51](https://cloud.githubusercontent.com/assets/1475489/3794833/ff9047c4-1bb2-11e4-8965-61d53803eb7c.png)

After fix

![staticshot_04-08-2014_11-33-18](https://cloud.githubusercontent.com/assets/1475489/3794844/1f8c48ca-1bb3-11e4-8654-69e0f3107e6d.png)

Info about romanian plural forms

![staticshot_04-08-2014_11-39-41](https://cloud.githubusercontent.com/assets/1475489/3794849/3cb03e70-1bb3-11e4-9151-7075ec9c8f4d.png)

Commits
-------

0c6f750 Fix incorrect romanian plural translations
removed some .gitattributes that should have been removed a lot time ago
[Validator] Convert objects to string in comparison validators. Reapplies 6cf5e0812e6f20d60acbc0324abf96475e89b6ef
bug #11558 [DependencyInjection] Fixed missing 'factory-class' attribute in XmlDumper output (kerdany)

This PR was merged into the 2.3 branch.

Discussion
----------

[DependencyInjection] Fixed missing 'factory-class' attribute in XmlDumper output

| 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

Problem: XmlDumper doesn't write 'factory-class' XML attribute for definitions on which setFactoryClass() was called.

Impact: Container[Builder] to throws an exception when the relevant service is being requested/initiated after loading the dumped XML.
`Uncaught Exception Symfony\Component\DependencyInjection\Exception\RuntimeException: "Cannot create service "xxx" from factory method without a factory service or factory class." at /<path>/<to>//DependencyInjection/ContainerBuilder.php`

Solution: Made XmlDumper write the 'factory-class' attribute, and updated the relevant test fixture.

Another related problem, is that XMLFileLoader doesn't complain if the 'factory-class' attribute is missing for a 'service' elements that include 'factory-method' attribute, resulting in an ill-configured Definition object in the ContainerBuilder. I'll post an issue/ticket, and probably send another PR for that.

Commits
-------

18e3e6f [DependencyInjection] fixed missing 'factory-class' attribute in XmlDumper output
Plural fix
bug #11560 Plural fix (1emming)

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

Discussion
----------

Plural fix

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

*BC note - this breaks code if people build on top of the incorrect returned value `drife`.

Fixes the `singular` for `drives`. I've added more test values to prove more edge cases and to show this changes doesn't break other `singular`-look ups.
In the test class i've added a few `known issues` for later reference/fixure.

Commits
-------

9b550d6 Plural fix