Converter CamelCase e snake_case
7 years ago by Jaime NetoAlgumas 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;
}