src/Request.php
public static function globalEnvironment($key = null) {
        // Check to parse the environment.
        if ($key === true || !isset(self::$globalEnv)) {
            self::$globalEnv = static::parseServerVariables();
        }

        if ($key) {
            return val($key, self::$globalEnv);
        }
        return self::$globalEnv;
    }
public static function globalEnvironment($key = null) {
        // Check to parse the environment.
        if ($key === true || !isset(self::$globalEnv)) {
            self::$globalEnv = static::parseServerVariables();
        }

        if ($key) {
            return val($key, self::$globalEnv);
        }
        return self::$globalEnv;
    }
Parse request information from the current environment.

The environment contains keys based on the Rack protocol (see http://rack.rubyforge.org/doc/SPEC.html).

@param mixed $key The environment variable to look at.
- null: Return the entire environment.
- true: Force a re-parse of the environment and return the entire environment.
- string: One of the environment variables.
@return array|string Returns the global environment or the value at {@link $key}.