public static function wrap(string $string = null, int $max = 0, int $pad_left = 0) : string { if (empty($string)) { return ''; } if ($max == 0) { $max = CLI::getWidth(); } if (CLI::getWidth() < $max) { $max = CLI::getWidth(); } $max = $max - $pad_left; $lines = wordwrap($string, $max); if ($pad_left > 0) { $lines = explode("\n", $lines); $first = true; array_walk($lines, function (&$line, $index) use($max, $pad_left, &$first) { if (!$first) { $line = str_repeat(" ", $pad_left) . $line; } else { $first = false; } }); $lines = implode("\n", $lines); } return $lines; } } // Ensure the class is initialized. CLI::init();