merged branch ocubom/fix-empty-string-argument (PR #3728)

Commits
-------

aac6ad8 [Console] avoid warning parsing empty string argument

Discussion
----------

[Console] avoid warning parsing empty string argument

Bug fix: yes
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: -
Todo: -

When passing an empty string argument (`app/console add:list "item1" "" "item3"`) the argument parser generates an invalid offset warning and ignores the argument. The parsing usually fails with some kind of invalid number of arguments error.

This fix the error cheching the empty string case and storing it as an argument
merged branch kbond/extensible-httpcache (PR #3716)

Commits
-------

8f11f2dd shortened if/else syntax
2b8c2bc [FrameworkBundle] made http_cache dir extensible

Discussion
----------

[FrameworkBundle] make http_cache dir extensible

Bug fix: no
Feature addition: yes
Backwards compatibility break: no
Symfony2 tests pass: yes

I have a use case where I don't want the httpcache cleared on `cache:clear`.  Currently, it is awkward to change this directory.

[![Build Status](https://secure.travis-ci.org/kbond/symfony.png?branch=extensible-httpcache)](http://travis-ci.org/kbond/symfony)
[HttpFoundation] Micro-optimisation.
[PhpUnit] Fix the path to the boostrap files in the components
[HttpFoundation] Further micro-optimization.
merged branch vicb/component_tests (PR #3736)

Commits
-------

234ce4d [PhpUnit] Fix the path to the boostrap files in the components

Discussion
----------

[PhpUnit] Fix the path to the boostrap files in the components
merged branch drak/sessionarray (PR #3735)

Commits
-------

8dd2c27 [HttpFoundation] Further micro-optimization.
54c5d5e [HttpFoundation] Micro-optimisation.

Discussion
----------

[HttpFoundation] Micro-optimisation.

Ref #3729

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

by robocoder at 2012-03-30T11:45:02Z

If you pre-flip your $validOptions arrays, you can use isset() instead of in_array() in the loop.

This changes the performance from O(m * n) to O(m).

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

by drak at 2012-03-30T11:53:24Z

@robocoder What is the expense of the array_flip though?

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

by robocoder at 2012-03-30T11:56:21Z

Why would you use array_flip if the array doesn't change?  Change $validOptions = array('x', 'y', ...) to $validOptions = array('x' => 0, 'y' => 0, ...), then change the in_array() to use isset().

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

by stof at 2012-03-30T11:57:08Z

@drak a loop. But it will be done only once before the other loop so it will be O(n + m) instead of O(m * n)

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

by drak at 2012-03-30T12:00:47Z

Ok :)
[Routing] removed code that was not ready to be pushed
Merge remote-tracking branch 'upstream/master'

* upstream/master:
  [Routing] removed code that was not ready to be pushed
  [HttpFoundation] Further micro-optimization.
  [PhpUnit] Fix the path to the boostrap files in the components
  [HttpFoundation] Micro-optimisation.
  [Console] avoid warning parsing empty string argument
  shortened if/else syntax
  [FrameworkBundle] made http_cache dir extensible