public static function underscoreToCamelCase($string)
    {
        static $cache = array();

        if (array_key_exists($string, $cache) == true) {
            return $cache[$string];
        }

        $replacer = function(array $matches) {
            return strtoupper($matches[1]);
        };

        return $cache[$string] = preg_replace_callback('/_(.?)/', $replacer, $string);
    }