public static function makeFromInteger($integer)
    {
        if ($integer == 0) return static::$chars[0];

        $number = abs($integer);

        if ($integer < 0)
            throw new \InvalidArgumentException("Can not encode for negative integers");

        $string = '';

        $base = strlen(static::$chars);

        while ($number > 0) {
            $string .= static::$chars[$number % $base];

            $number = (int) ($number / $base);
        }

        return strrev($string);
    }