public static function underscore($word)
    {
        $word = preg_replace('/([A-Z]+)([A-Z][a-z])/', '\1_\2', $word);
        $word = preg_replace('/([a-z])([A-Z])/', '\1_\2', $word);

        return str_replace('-', '_', strtolower($word));
    }