public function underscorize() { return mb_strtolower(preg_replace('/(?<=\\w)([A-Z])/', '_\\1', mb_strtolower(mb_substr($this->value, 0, 1)) . mb_substr($this->value, 1))); }