Core/Toolbox/Strings/CamelCase.php
function uncamelize(): string
    {
        if (empty($this->string)) {
            Throw new \InvalidArgumentException('The string set to be uncamelized is empty.');
        }

        $this->result = $this->string;
        $this->result[0] = strtolower($this->result[0]);

        $callback = function ($c) {
            return '_' . strtolower($c[1]);
        };

        $this->resultg = preg_replace_callback('/([A-Z])/', $callback, $this->result);
        $this->result = trim(preg_replace('@[_]{2,}@', '_', $this->result), '_');

        return $this->result;
    }
function uncamelize(): string
    {
        if (empty($this->string)) {
            Throw new \InvalidArgumentException('The string set to be uncamelized is empty.');
        }

        $this->result = $this->string;
        $this->result[0] = strtolower($this->result[0]);

        $callback = function ($c) {
            return '_' . strtolower($c[1]);
        };

        $this->resultg = preg_replace_callback('/([A-Z])/', $callback, $this->result);
        $this->result = trim(preg_replace('@[_]{2,}@', '_', $this->result), '_');

        return $this->result;
    }
Converts camel case strings into underscored strings

@throws InvalidArgumentException#

@return string