bug #10494 [2.3][Validator] Minor fix in IBAN validator (sprain)

This PR was merged into the 2.3 branch.

Discussion
----------

[2.3][Validator] Minor fix in IBAN validator

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

Added more values to unit tests of IBAN validator to make clear it doesn't accept lower case letters.

> Permitted IBAN characters are the digits 0 to 9 and the 26 upper-case Latin alphabetic characters A to Z.
http://en.wikipedia.org/wiki/International_Bank_Account_Number

Also made little adjustment to code which meant to validate lowercase letters but actually was useless.

Commits
-------

3eeb306 Fix IBAN validator
[Form] Fix "Array was modified outside object" in ResizeFormListener.
bug #10410 [Form] Fix "Array was modified outside object" in ResizeFormListener. (Chekote)

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

Discussion
----------

[Form] Fix "Array was modified outside object" in ResizeFormListener.

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

This is the second pull request for this issue. The history of this is as follows:

Original Fix was added Feb 11th under Pull Request #10232.
Users began complaining of Doctrine ArrayCollection not being updated in forms.
Revert was added Feb 15th under Pull Request #10269.
Issue #10405 was opened on 7th Mar for the original bug.

Pull Request #10269 has a failing test that illustrates users concerns.
I have added failing tests to this pull request to illustrate the problems described in #10405.

All tests now pass, and all forms of $data are now supported, including arrays, DoctrineCollection, ArrayObject, and other IteratorAggregates.

__Details as follows:__

The onSubmit() method of the ResizeFormListener class is assuming the data is an array, and calling unset directly inside a foreach. This works fine in most scenarios, but if data is an instance of IteratorAggregate that is iterating over $data by reference, it breaks with the following error:

Symfony\Component\Form\Extension\Core\EventListener\ResizeFormListener::onSubmit(): ArrayIterator::next(): Array was modified outside object and internal position is no longer valid in ./vendor/symfony/symfony/src/Symfony/Component/Form/Extension/Core/EventListener/ResizeFormListener.php line 142

This is because the foreach loop is using an Iterator in the background, but the ResizeFormListener has unset the underlying data directly, causing the value that the Iterators internal pointer is pointing to to change.

The Iterator provided by IteratorAggregate may or may not have the ability to modify it's underlying data. So it is not possible to rely on the Iterator to modify the data. Instead, it is simpler to avoid modifying $data at all while we are iterating over it. So instead, we simply iterate over $data once to determine the keys we need to delete, and store them. Then we iterate over the keys and delete them from $data.

Commits
-------

aa63fae [Form] Fix "Array was modified outside object" in ResizeFormListener.
Fixed doc of InitAclCommand
minor #10497 [SecurityBundle] Fixed doc of InitAclCommand (dunglas)

This PR was submitted for the 2.3-dev branch but it was merged into the 2.3 branch instead (closes #10497).

Discussion
----------

[SecurityBundle] Fixed doc of InitAclCommand

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

Use {@inheritdoc}. Consistency with https://github.com/symfony/symfony/pull/9990#discussion-diff-10219606.

Commits
-------

aa49009 [SecurityBundle] Fixed doc of InitAclCommand
[Debug] sync with deprecation in DebugClassLoader
Cast the group name as a string

This allows the options to be grouped by association fields.
bug #10416 [Form] Allow options to be grouped by objects (felds)

This PR was submitted for the 2.3-dev branch but it was merged into the 2.3 branch instead (closes #10416).

Discussion
----------

[Form] Allow options to be grouped by objects

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

Commits
-------

ae3f02f Cast the group name as a string
add scheme option to router:match command
Clean KernelInterface docblocks

- Fixed questionable grammar
- Added missing periods to make it consistent
minor #10525 [HttpKernel] Clean KernelInterface docblocks (sbward)

This PR was submitted for the 2.3-dev branch but it was merged into the 2.3 branch instead (closes #10525).

Discussion
----------

[HttpKernel] Clean KernelInterface docblocks

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

- Fixed questionable grammar
- Added missing periods to make it consistent

Commits
-------

4b1f050 Clean KernelInterface docblocks
fixed comment in forms.xml file
minor #10514 [FrameworkBundle] fixed comment in forms.xml file (hhamon)

This PR was merged into the 2.3 branch.

Discussion
----------

[FrameworkBundle] fixed comment in forms.xml file

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

Commits
-------

f9f7246 [FrameworkBundle] fixed comment in forms.xml file
feature #10509 [FrameworkBundle] add scheme option to router:match command (Tobion)

This PR was merged into the 2.5-dev branch.

Discussion
----------

[FrameworkBundle] add scheme option to router:match command

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

Continuation of #10439

Commits
-------

e3f17f9 add scheme option to router:match command
feature #10506 [Debug] sync with deprecation in DebugClassLoader (nicolas-grekas)

This PR was merged into the 2.5-dev branch.

Discussion
----------

[Debug] sync with deprecation in DebugClassLoader

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

Commits
-------

c70a468 [Debug] sync with deprecation in DebugClassLoader
Update OptionsResolver.php

Deleting an extra space in the exception.
minor #10528 Update OptionsResolver.php (shadypierre)

This PR was submitted for the 2.3-dev branch but it was merged into the 2.3 branch instead (closes #10528).

Discussion
----------

Update OptionsResolver.php

Deleting an extra space in the exception.

Commits
-------

7507fbb Update OptionsResolver.php
Fix Exception messages for ObjectIdentity ObjectIdentityInterface doesn't require implementing __toString method, so we need to make sure that object can be converted to string.
feature #9690 Using Oracle Database as ACL storage (skolodyazhnyy)

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

Discussion
----------

Using Oracle Database as ACL storage

Hi,

I have faced few errors when tried to use Oracle Database:

 1. Oracle return result as an array where all column names are in uppercase, so some code, where column names was in lowercase stop working
 2. Oracle gives me an error 'ORA-00933: SQL command not properly ended' for queries where 'AS' was used in FROM and JOIN instructions
 3. Oracle require strict type match in queries, so I have added string converting for object_identity_id.

Commits
-------

5f3be0e Fix Exception messages for ObjectIdentity ObjectIdentityInterface doesn't require implementing __toString method, so we need to make sure that object can be converted to string.
removed ini check to make uploadedfile work on gae