merged branch jaugustin/fix-cache-clear-windows-2.0 (PR #4408)

Commits
-------

35b458f fix kernel root, linux dir separator on windows, to fix cache:clear issue

Discussion
----------

Fix cache clear windows 2.0

Hi,

This fix the issue #3453 for the 2.0 branch.

---------------------------------------------------------------------------

by travisbot at 2012-05-25T07:43:47Z

This pull request [fails](http://travis-ci.org/symfony/symfony/builds/1430935) (merged 35b458f6 into f9044e44).
merged branch Tobion/optionsresolver-optim (PR #4388)

Commits
-------

bad4a1f [OptionsResolver] CS fix in LazyOption
a54ea1b [OptionsResolver] small optimization in Options class
104dcf2 [OptionsResolver] fixed bugs concerning required options
1bfcff4 [OptionsResolver] added failing test cases to demonstrate two bugs
37a3a29 [OptionsResolver] optimized validation

Discussion
----------

[OptionsResolver] fixed two bugs and applied optimization

The first commit optimizes the validation in OptionsResolver by removing several unneeded method calls (without changing anything semantically).

Then I recognized two bugs in the current code that I wrote failing test cases for in the second commit.
1. setAllowedValues wrongly validated missing options
2. required options with defaults were considered missing by `resolve` (contrary to the `isRequired` method)

The third commit fixes these bugs.

The forth commit applies a small optimization in Options and uses a static function call for a static function.

---------------------------------------------------------------------------

by travisbot at 2012-05-24T03:39:34Z

This pull request [fails](http://travis-ci.org/symfony/symfony/builds/1418785) (merged a54ea1b6 into b07fb3c4).

---------------------------------------------------------------------------

by travisbot at 2012-05-24T05:22:33Z

This pull request [fails](http://travis-ci.org/symfony/symfony/builds/1419232) (merged bad4a1f7 into b07fb3c4).

---------------------------------------------------------------------------

by bschussek at 2012-05-24T06:20:02Z

I just tested this on my machine, and static calls are a tiny bit faster here, although this is really irrelevant for practical use. Even though I dislike useless micro-optimizations like this, I'm ok with this PR in general.

---------------------------------------------------------------------------

by Tobion at 2012-05-24T13:23:11Z

I didn't say that's an optimization in the first place. (The optimization was the removal of a variable assignment)
I just changed it because in other PRs I've been told, static functions should be called in a static way.

---------------------------------------------------------------------------

by Tobion at 2012-05-24T23:36:13Z

Please merge before 4387
Make the session entry for the target url firewall dependent.

If there are two firewalls (eg. main and admin), calling an protected admin url
will direct you to the login form of the admin. If I ignore this and go to the login
form of the main firewall directly I will end up being redirected to the stored
admin target url. This is not what you usually want to happen.
[OptionsResolver] Added method setFilters() for augmenting the final option values
[OptionsResolver] Added option type validation capabilities
[OptionsResolver] Relaxed tests to check that allowed values can also be passed as scalars
[Form] Changed getDefaultOptions() to setDefaultOptions(OptionsResolver $resolver) in FormTypeInterface
[Form] Options are now passed to buildView() and buildViewBottomUp()
[Form] Added FormBuilderInterface and FormViewInterface and cleaned up FormTypeInterface and FormTypeExtensionInterface
[OptionsResolver] Added OptionsResolverInterface
[OptionsResolver] Renamed recommended method to setDefaultOptions()
[Form] setDefaultOptions() is now coded against OptionsResolverInterface
[Form] Renamed client and application format to view and model format
[Form] Merged various form events and added class FormEvent
[Form] Reversed the order of $type and $name in FormFactory::createNamed[Builder]()
[Form][OptionsResolver] Fixed typos
[Form] Consolidated FormInterface, FormBuilderInterface and FormViewInterface
[Form] Inverted the logic of "single_control" and renamed it to "compound". The opposite is now "simple".
[Form] Fixed API docs and usage of FormBuilderInterface instead of FormBuilder
[Form] Renamed setVars() to addVars() in FormViewInterface