[Form] check the required output timezone against the actual timezone
of the input datetime object, rather than the expected timezone supplied
bug#8809 [Form] enforce correct timezone (Burgov)

This PR was merged into the 2.2 branch.

Discussion
----------

[Form] enforce correct timezone

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | not sure if this is a BC break...
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

I'm using the Form component to handle JSON requests which come from AJAX requests. The JSON is formed by the Angular toJson method

A typical request would be:
```
{
  name: "Some name"
  start: "2013-08-21T05:00:00.000Z"
  end: "2013-08-21T15:00:00.000Z"
}
```

Note that in this case, what I entered in my input boxes are 7:00 for start and 17:00 for end times. As you can see, Angular (or Chrome, I'm not sure), converts this to the "Z" timezone. Since I cannot enforce the correct timezone client side, the timezone will differ from the one configured in the DateTimeType, however, instead of resulting in either an error or a conversion to the correct timezone, I get a datetime object in the wrong timezone, eventually resulting in wrong values in the database.

By checking the required output timezone against the actual timezone of the input datetime object, rather than the expected timezone supplied, this problem is solved.

Commits
-------

b0349a1 [Form] check the required output timezone against the actual timezone of the input datetime object, rather than the expected timezone supplied
[FrameworkBundle] fixed path replacement on Windows

In the cache, blackslashes in paths can be both represented by a single
or a double backslash.
[Form] add support for Length and Range constraint in order to replace MaxLength, MinLength, Max and Min constraints in next release (2.3)
bug #9188 [2.2][Form] add support for Length and Range constraint in ValidatorTypeGuesser (franek)

This PR was merged into the 2.2 branch.

Discussion
----------

[2.2][Form] add support for Length and Range constraint in ValidatorTypeGuesser

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

MaxLength, MinLength, Min and Max constraints are deprecated on 2.2. Will be removed in 2.3.

Add support for type guessing of Length and Range constraints.

fix #9132 on 2.2 branch

Commits
-------

89a0404 [Form] add support for Length and Range constraint in order to replace MaxLength, MinLength, Max and Min constraints in next release (2.3)
Fix: duplicate usage of Symfony\Component\HttpFoundation\Response
bug #9190 Fix: duplicate usage of Symfony\Component\HttpFoundation\Response (realsim)

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

Discussion
----------

Fix: duplicate usage of Symfony\Component\HttpFoundation\Response

Duplicate usage of Symfony\Component\HttpFoundation\Response causes an error:
> PHP Fatal error:  Cannot use Symfony\Component\HttpFoundation\Response as Response because the name is already in use in src/Symfony/Component/Security/Http/Authorization/AccessDeniedHandlerInterface.php on line 17

Commits
-------

e602c09 Fix: duplicate usage of Symfony\Component\HttpFoundation\Response
remove MinCount and MaxCount contraints. It has been replaced by Count constraints.
bug #9192 [2.2][Form] remove MinCount and MaxCount constraints in ValidatorTypeGuesser (franek)

This PR was merged into the 2.2 branch.

Discussion
----------

[2.2][Form] remove MinCount and MaxCount constraints in ValidatorTypeGuesser

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

MinCount and MaxCount has been removed and replaced by Count (in 2.2 also).

Commits
-------

58a3296 remove MinCount and MaxCount contraints. It has been replaced by Count constraints.
bug #9184 Fixed cache warmup of paths which contain back-slashes (fabpot)

This PR was merged into the 2.2 branch.

Discussion
----------

Fixed cache warmup of paths which contain back-slashes

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

From #8781

"
At this step in the warmup process there is a string replacement made, but paths with backslashes
are written into the cache file as something like `C:\\path\\to\\cache/pro_/...` but the str_replace
searches for the plain string `C:\path\to\cache/pro_/...`, which produces no matches.

The fix solves this by using var_export to escape the search (and replace) paths so they match the
format originally output into the cache file.
"

Commits
-------

526d285 [FrameworkBundle] fixed path replacement on Windows
Check for lock existence before unlinking

My logs are filled with a bazillion errors stating "Warning: unlink(/var/www/mysite/app/cache/prod/http_cache/md/cf/47/c693da5dab3eccb65fa36a9b4b07ad0f7cc4.lck): No such file or directory in /var/www/mysite/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/HttpCache/Store.php line 53"
bug #9207 [HttpKernel] Check for lock existence before unlinking (ollietb)

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

Discussion
----------

[HttpKernel] Check for lock existence before unlinking

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

My logs are filled with a bazillion errors stating "Warning: unlink(/var/www/mysite/app/cache/prod/http_cache/md/cf/47/c693da5dab3eccb65fa36a9b4b07ad0f7cc4.lck): No such file or directory in /var/www/mysite/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/HttpCache/Store.php line 53"

Commits
-------

89cd3b9 Check for lock existence before unlinking
fixed CS
[FramworkBundle][HttpKernel] Check event listener services are not abstract
bug #9214 [FramworkBundle] Check event listener services are not abstract (lyrixx)

This PR was merged into the 2.2 branch.

Discussion
----------

[FramworkBundle] Check event listener services are not abstract

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

Commits
-------

6744ead [FramworkBundle][HttpKernel] Check event listener services are not abstract
Fixed propel guessed relations
bug #9222 [Bridge] [Propel1] Fixed guessed relations (ClementGautier)

This PR was merged into the 2.2 branch.

Discussion
----------

[Bridge] [Propel1] Fixed guessed relations

<table>
  <tr><th>Q</th><th>A</th></tr>
  <tr><td>Bug fix</td><td>yes</td></tr>
  <tr><td>Feature addition</td><td>no</td></tr>
  <tr><td>Backwards compatibility break</td><td>no</td></tr>
  <tr><td>Symfony2 tests pass</td><td>yes</td></tr>
  <tr><td>Fixes the following tickets</td><td>N/A</td></tr>
  <tr><td>Todo</td><td>N/A</td></tr>
  <tr><td>License of the code</td><td>MIT</td></tr>
  <tr><td>Documentation PR</td><td>N/A</td></tr>
</table>

The `PropelTypeGuesser` did not match OneToMany relations properly. For example if you have a `Author` class with `Comments` attributes the guesser would guess "Comment" instead of "Comments".

I added some tests to ensure the non regression.

Commits
-------

0b1e95f Fixed propel guessed relations