[DomCrawler] Fixed the coding standards to use strict comparisons
[HttpFoundation] implement session locking for PDO
bug #10908 [HttpFoundation] implement session locking for PDO (Tobion)

This PR was merged into the 2.3 branch.

Discussion
----------

[HttpFoundation] implement session locking for PDO

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

This is probably the first Session Handler for databases that actually works with locking. I've seen many implementations of session handlers (mostly only for one database vendor) while researching and none used locking. Not even the [PHPs SQLite session handler](https://github.com/php/php-src/blob/PHP-5.3/ext/sqlite/sess_sqlite.c) or [PECL Postgres Handler](http://svn.php.net/viewvc/pecl/session_pgsql/trunk/session_pgsql.c?revision=326806&view=markup) implemented locking  correctly which is probably the reason why they have been discontinued. [Zend Session](https://github.com/zendframework/zf2/blob/master/library/Zend/Session/SaveHandler/DbTableGateway.php) seems not to use locking either. But it saves the lifetime together with the session which seems like a good idea because you could have different lifetimes for different sessions.

- Implements session locking for MySQL, Postgres, Oracle, SQL Server and SQLite.
Only tested it for MySQL. So would be good if someone can confirm it works as intended on the other databases as well.
- Also removed the custom RuntimeException which is not useful and a PDOException extends RuntimeException anyway, so no BC break.
- I added a default for the table name to be in line with the DoctrineSessionHandler.
- Check session.gc_maxlifetime in read(). Imagine we have only ever one user on an app. If maxlifetime is not checked in read, his session would never expire! What I don't get is why PHP calls gc() after read() instead of calling it before... Strange decision. For this reason I also had to do the following to improve performance.
- I delay gc() to close() so that it is executed outside the transactional and blocking read-write process. This way, pruning expired sessions does not block them from being started while the current session is used.
- Fixed time update for Oracle and SQL Server.

Commits
-------

50ec828 [HttpFoundation] implement session locking for PDO
minor #10928 [DomCrawler] Fixed the coding standards to use strict comparisons (stof)

This PR was merged into the 2.3 branch.

Discussion
----------

[DomCrawler] Fixed the coding standards to use strict comparisons

| 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

Many places in DomCrawler are using loose comparison instead of strict comparison. I saw them while checking the whole component for DOMNode vs DOMElement usage whe working on #10927. However, I submitted this change to 2.3 instead, to ease merging between branches (applying the change only in master would likely create conflicts regularly when merging changes in DomCrawler between branches later)

Commits
-------

77b446c [DomCrawler] Fixed the coding standards to use strict comparisons
[Process] Add validation on Process input
Fix "absolute path" when we look to the cache directory

We should get __DIR__ instead of __DIR__ . '/.'
bug #10937 [HttpKernel] Fix "absolute path" when we look to the cache directory (BenoitLeveque)

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

Discussion
----------

[HttpKernel] Fix "absolute path" when we look to the cache directory

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

We should get ``__DIR__`` instead of ``__DIR__ . '/.'``

I've seen this issue when trying to play with the symfony standard new directory structure

Commits
-------

4735e56 Fix "absolute path" when we look to the cache directory
fixed CS
Fixed the Travis build to avoid exiting too early
minor #10950 Fixed the Travis build to avoid exiting too early (stof)

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

Discussion
----------

Fixed the Travis build to avoid exiting too early

currently, failed tests on Travis are exiting the build too early, avoiding to run some tests and maybe even loosing some output. See https://github.com/travis-ci/travis-ci/issues/2346 for more details

Commits
-------

2e64fb1 Fixed the Travis build to avoid exiting too early
Fixed test cases failing when the Intl extension is not installed
minor #10955 Fixed test cases failing when the Intl extension is not installed (webmozart)

This PR was merged into the 2.3 branch.

Discussion
----------

Fixed test cases failing when the Intl extension is not installed

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

I tested the 2.3 branch against PHP 5.5.12 with the following ICU versions:

* none
* 4.0
* 4.2
* 4.4
* 4.6
* 4.8
* 49
* 50
* 51
* 52
* 53

This PR contains the related fixes.

Commits
-------

fad38e8 Fixed test cases failing when the Intl extension is not installed
[HttpKernel] fixed file uploads in functional tests when no file was selected

Allow user to submit a form with no file selected.
bug #10953 [HttpKernel] fixed file uploads in functional tests without file selected (realmfoo)

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

Discussion
----------

[HttpKernel] fixed file uploads in functional tests without file selected

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

Commits
-------

6f56d87 [HttpKernel] fixed file uploads in functional tests when no file was selected
[DomCrawler] Added more tests for the XPath filtering

This will ensure we don't introduce regressions again when fixing #10206.
[DomCrawler] Fixed filterXPath() chaining
Fixed the XPath filtering to have the same behavior than Symfony 2.4
bug #10958 [DomCrawler] Fixed filterXPath() chaining loosing the parent DOM nodes (stof, robbertkl)

This PR was merged into the 2.3 branch.

Discussion
----------

[DomCrawler] Fixed filterXPath() chaining loosing the parent DOM nodes

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

This is a fixed version of #10207, preserving the BC for XPath queries. It is the rebased version of #10935 targetting 2.3

The example given in #10260 when reporting the regression in the previous attempt is covered by the new tests added in the first commit of the PR.
I also added many tests ensuring that the behavior is the same than in the current implementation.

Commits
-------

80438c2 Fixed the XPath filtering to have the same behavior than Symfony 2.4
711ac32 [DomCrawler] Fixed filterXPath() chaining
8f706c9 [DomCrawler] Added more tests for the XPath filtering
Include file path in exception
minor #10945 [Component][Translation][Loader] Include file path in exception message  (skafandri)

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

Discussion
----------

[Component][Translation][Loader] Include file path in exception message

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

When Translation component tryes to load an invalid YAML file, you get

    InvalidResourceException: Error parsing YAML.
Which is not very helpful, I spent 1 hour looking for the invalid file, I think is better to include the file path in the exception message.

Commits
-------

3d576ef Include file path in exception