Closed pvdhurk closed 3 years ago
https://github.com/thephpleague/climate/blob/6b53a28a58ad9f5f63042e291eb870cf0d02a9c9/src/TerminalObject/Dynamic/Checkbox/Checkbox.php#L178
In my case, the radio option is 86 in length and the screen is 80, -6 results in the below exception:
PHP Fatal error: Method League\CLImate\TerminalObject\Dynamic\Checkbox\Checkbox::__toString() must not throw an exception, caught Whoops\Exception\ErrorException: str_repeat(): Second argument has to be greater than or equal to 0 in /Users/patrick/Documents/Development/git/cap2missioncontrol/vendor/league/climate/src/TerminalObject/Dynamic/Checkbox/CheckboxGroup.php on line 0 PHP Stack trace: PHP 1. {main}() /Users/patrick/Documents/Development/git/cap2missioncontrol/console:0 PHP 2. Base->run() /Users/patrick/Documents/Development/git/cap2missioncontrol/console:77 PHP 3. Base->call($func = *uninitialized*, $args = *uninitialized*, $hooks = *uninitialized*) /Users/patrick/Documents/Development/git/cap2missioncontrol/vendor/bcosca/fatfree-core/base.php:1727 PHP 4. {closure:/Users/patrick/Documents/Development/git/cap2missioncontrol/console:34-75}($f3 = *uninitialized*, *uninitialized*, *uninitialized*) /Users/patrick/Documents/Development/git/cap2missioncontrol/vendor/bcosca/fatfree-core/base.php:1927 PHP 5. Cap2\MissionControl\Console\AbstractTask::execute($cmd = *uninitialized*, $task = *uninitialized*) /Users/patrick/Documents/Development/git/cap2missioncontrol/console:74 PHP 6. Cap2\MissionControl\Console\Db->testTenant() /Users/patrick/Documents/Development/git/cap2missioncontrol/src/Console/AbstractTask.php:127 PHP 7. Cap2\MissionControl\Console\Db->consoleReturnDatabaseAndPort() /Users/patrick/Documents/Development/git/cap2missioncontrol/src/Console/Db.php:154 PHP 8. League\CLImate\TerminalObject\Dynamic\Radio->prompt() /Users/patrick/Documents/Development/git/cap2missioncontrol/src/Console/Db.php:232 PHP 9. League\CLImate\TerminalObject\Dynamic\Radio->writeCheckboxes() /Users/patrick/Documents/Development/git/cap2missioncontrol/vendor/league/climate/src/TerminalObject/Dynamic/Checkboxes.php:34 PHP 10. League\CLImate\TerminalObject\Dynamic\Radio->updateCheckboxView() /Users/patrick/Documents/Development/git/cap2missioncontrol/vendor/league/climate/src/TerminalObject/Dynamic/Checkboxes.php:68 PHP 11. League\CLImate\TerminalObject\Dynamic\Checkbox\RadioGroup->write() /Users/patrick/Documents/Development/git/cap2missioncontrol/vendor/league/climate/src/TerminalObject/Dynamic/Checkboxes.php:157 PHP 12. array_map(*uninitialized*, *uninitialized*) /Users/patrick/Documents/Development/git/cap2missioncontrol/vendor/league/climate/src/TerminalObject/Dynamic/Checkbox/CheckboxGroup.php:31 PHP 13. League\CLImate\TerminalObject\Dynamic\Checkbox\RadioGroup->writeCheckbox($checkbox = *uninitialized*) /Users/patrick/Documents/Development/git/cap2missioncontrol/vendor/league/climate/src/TerminalObject/Dynamic/Checkbox/CheckboxGroup.php:31 Fatal error: Method League\CLImate\TerminalObject\Dynamic\Checkbox\Checkbox::__toString() must not throw an exception, caught Whoops\Exception\ErrorException: str_repeat(): Second argument has to be greater than or equal to 0 [vendor/league/climate/src/TerminalObject/Dynamic/Checkbox/CheckboxGroup.php:0]
Suggested change:
/** * Get the padding string based on the length of the terminal/line * * @param string $line * * @return string */ protected function getPaddingString($line) { $length = $this->util->width() - $this->lengthWithoutTags($line); return $length>=0 : str_repeat(' ', $length) ? ''; }
This is fixed in 3.6.0 thanks for the report!
Happy to help :)
https://github.com/thephpleague/climate/blob/6b53a28a58ad9f5f63042e291eb870cf0d02a9c9/src/TerminalObject/Dynamic/Checkbox/Checkbox.php#L178
In my case, the radio option is 86 in length and the screen is 80, -6 results in the below exception:
Suggested change: