public static function underscore($string = null)
    {
        if ($string === null) {
            return null;
        }

        return strtolower(preg_replace('/([A-Z])/', '_\1', lcfirst($string)));
    }