public static function fromCamelCase($pStr)
    {
        if (empty($pStr)) {
            return $pStr;
        }

        $pStr[0] = strtolower($pStr[0]);

        return preg_replace_callback('/([A-Z])/', function ($pMatches)
            {
                return '_' . strtolower($pMatches[0]);
            }, $pStr);
    }