PHP 5.4

PHP 5.4 is the next major version of PHP after the PHP 5.3 that we currently require. PHP 5.3 gave us a number of things like closures, namespaces, and late static binding. PHP 5.4 adds a number of new features:
 * traits support.
 * Short array syntax  instead of.
 * is now valid and doesn't give a syntax error.
 * $this can be used in closures.
 * is now always supported,  is no longer necessary for compatibility.
 * is now valid and doesn't give a syntax error.
 * is now valid and doesn't give a syntax error.
 * A binary number format is now supported.
 * The upload progress of a file can be tracked.
 * The magic_quotes_gpc feature has been removed.

Future ...
Here's a list of future dreams of things we could do if we required PHP 5.4 by default.

TContextSource
RequestContext can now use traits. Instead of being stuck with the ContextSource class we can implement a TContextSource trait. Context sources with parent classes would then be able to use the trait instead of having to reimplement a bunch of junk since it can't extend ContextSource.

Our ContextSource class can even become something as small as this.

WebRequest's magic_quotes_gpc
With magic_quotes_gpc gone WebRequest will no longer need to modify $_COOKIE, $_ENV, $_GET, $_POST, $_REQUEST, and $_SERVER. WebRequest::checkMagicQuotes and WebRequest::fix_magic_quotes can disappear entirely.

As a bonus result thanks to the fact that WebRequest doesn't need to be constructed early on to modify these variables we can stop constructing it inside of Setup.php and can add it properly when the main context is setup.