Converter CamelCase e snake_case

6 years ago by Jaime Neto

Algumas vezes precisamos converter textos em CamelCase para snake_case, ou o contrário. Por exemplo, digamos que você use o nome dos atributos de uma classe em camelCase e os campos da tabela em camel_case, e em algum momento do seu código você precise converter esses nomes. Então, eis as funções PHP que você precisa para essas conversões:

/**
 * Converte um string de CamelCase para snake_case
 *
 * @param string $string
 * @return string
 */
public function camel2Snake($string)
{
    $string = preg_replace('/([a-z])([A-Z])/', '$1_$2', $string);
    return strtolower($string);
}


/**
 * Converte snake_case para CamelCase. Por padrão converte para
 * UpperCamelCase, mas também pode converter para lowerCamelCase,
 * usando true no segundo argumento.
 *
 * @param string $string
 * @param boolean $lower [default=false]
 * @return string
 */
public function snake2Camel($string, $lower=false)
{
    $string = ucwords(str_replace('_',' ',$string));
    $string = str_replace(' ', '', $string);
    return $lower ? lcfirst($string) : $string;
}

Comments