update patch 1

This commit is contained in:
fiqhpratama
2024-12-02 01:18:34 +07:00
parent 453d9bb470
commit 25026b0a85
3380 changed files with 103529 additions and 363623 deletions
+21 -4
View File
@@ -36,8 +36,10 @@ class ProgressIndicator
private ?string $message = null;
private array $indicatorValues;
private int $indicatorCurrent;
private string $finishedIndicatorValue;
private float $indicatorUpdateTime;
private bool $started = false;
private bool $finished = false;
/**
* @var array<string, callable>
@@ -53,11 +55,12 @@ class ProgressIndicator
?string $format = null,
private int $indicatorChangeInterval = 100,
?array $indicatorValues = null,
?string $finishedIndicatorValue = null,
) {
$format ??= $this->determineBestFormat();
$indicatorValues ??= ['-', '\\', '|', '/'];
$indicatorValues = array_values($indicatorValues);
$finishedIndicatorValue ??= '✔';
if (2 > \count($indicatorValues)) {
throw new InvalidArgumentException('Must have at least 2 indicator value characters.');
@@ -65,6 +68,7 @@ class ProgressIndicator
$this->format = self::getFormatDefinition($format);
$this->indicatorValues = $indicatorValues;
$this->finishedIndicatorValue = $finishedIndicatorValue;
$this->startTime = time();
}
@@ -89,6 +93,7 @@ class ProgressIndicator
$this->message = $message;
$this->started = true;
$this->finished = false;
$this->startTime = time();
$this->indicatorUpdateTime = $this->getCurrentTimeInMilliseconds() + $this->indicatorChangeInterval;
$this->indicatorCurrent = 0;
@@ -123,13 +128,25 @@ class ProgressIndicator
/**
* Finish the indicator with message.
*
* @param ?string $finishedIndicator
*/
public function finish(string $message): void
public function finish(string $message/* , ?string $finishedIndicator = null */): void
{
$finishedIndicator = 1 < \func_num_args() ? func_get_arg(1) : null;
if (null !== $finishedIndicator && !\is_string($finishedIndicator)) {
throw new \TypeError(\sprintf('Argument 2 passed to "%s()" must be of the type string or null, "%s" given.', __METHOD__, get_debug_type($finishedIndicator)));
}
if (!$this->started) {
throw new LogicException('Progress indicator has not yet been started.');
}
if (null !== $finishedIndicator) {
$this->finishedIndicatorValue = $finishedIndicator;
}
$this->finished = true;
$this->message = $message;
$this->display();
$this->output->writeln('');
@@ -172,7 +189,7 @@ class ProgressIndicator
return;
}
$this->overwrite(preg_replace_callback("{%([a-z\-_]+)(?:\:([^%]+))?%}i", function ($matches) {
$this->overwrite(preg_replace_callback('{%([a-z\-_]+)(?:\:([^%]+))?%}i', function ($matches) {
if ($formatter = self::getPlaceholderFormatterDefinition($matches[1])) {
return $formatter($this);
}
@@ -216,7 +233,7 @@ class ProgressIndicator
private static function initPlaceholderFormatters(): array
{
return [
'indicator' => fn (self $indicator) => $indicator->indicatorValues[$indicator->indicatorCurrent % \count($indicator->indicatorValues)],
'indicator' => fn (self $indicator) => $indicator->finished ? $indicator->finishedIndicatorValue : $indicator->indicatorValues[$indicator->indicatorCurrent % \count($indicator->indicatorValues)],
'message' => fn (self $indicator) => $indicator->message,
'elapsed' => fn (self $indicator) => Helper::formatTime(time() - $indicator->startTime, 2),
'memory' => fn () => Helper::formatMemory(memory_get_usage(true)),