ProgressHelper
extends Helper
in package
Create a progress bar using a supplied callback.
Usage
The ProgressHelper can be accessed from shells using the helper() method
$this->helper('Progress')->output(['callback' => function ($progress) {
// Do work
$progress->increment();
});
Table of Contents
Constants
- DEFAULT_TOTAL = 100
- Default value for progress bar total value.
- DEFAULT_WIDTH = 80
- Default value for progress bar width
Properties
- $_config : array<string, mixed>
- Runtime config
- $_configInitialized : bool
- Whether the config property has already been configured with defaults
- $_defaultConfig : array<string, mixed>
- Default config for this helper.
- $_io : ConsoleIo
- ConsoleIo instance.
- $_progress : float|int
- The current progress.
- $_total : int
- The total number of 'items' to progress through.
- $_width : int
- The width of the bar.
Methods
- __construct() : mixed
- Constructor.
- configShallow() : $this
- Merge provided config with existing config. Unlike `config()` which does a recursive merge for nested keys, this method does a simple merge.
- draw() : $this
- Render the progress bar based on the current state.
- getConfig() : mixed
- Returns the config.
- getConfigOrFail() : mixed
- Returns the config for this specific key.
- increment() : $this
- Increment the progress bar.
- init() : $this
- Initialize the progress bar for use.
- output() : void
- Output a progress bar.
- setConfig() : $this
- Sets the config.
- _configDelete() : void
- Deletes a single config key.
- _configRead() : mixed
- Reads a config key.
- _configWrite() : void
- Writes a config key.
Constants
DEFAULT_TOTAL
Default value for progress bar total value.
protected
mixed
DEFAULT_TOTAL
= 100
Percent completion is derived from progress/total
DEFAULT_WIDTH
Default value for progress bar width
protected
mixed
DEFAULT_WIDTH
= 80
Properties
$_config
Runtime config
protected
array<string, mixed>
$_config
= []
$_configInitialized
Whether the config property has already been configured with defaults
protected
bool
$_configInitialized
= false
$_defaultConfig
Default config for this helper.
protected
array<string, mixed>
$_defaultConfig
= []
$_io
ConsoleIo instance.
protected
ConsoleIo
$_io
$_progress
The current progress.
protected
float|int
$_progress
= 0
$_total
The total number of 'items' to progress through.
protected
int
$_total
= self::DEFAULT_TOTAL
$_width
The width of the bar.
protected
int
$_width
= self::DEFAULT_WIDTH
Methods
__construct()
Constructor.
public
__construct(ConsoleIo $io[, array<string, mixed> $config = [] ]) : mixed
Parameters
- $io : ConsoleIo
-
The ConsoleIo instance to use.
- $config : array<string, mixed> = []
-
The settings for this helper.
configShallow()
Merge provided config with existing config. Unlike `config()` which does a recursive merge for nested keys, this method does a simple merge.
public
configShallow(array<string, mixed>|string $key[, mixed|null $value = null ]) : $this
Setting a specific value:
$this->configShallow('key', $value);
Setting a nested value:
$this->configShallow('some.nested.key', $value);
Updating multiple config settings at the same time:
$this->configShallow(['one' => 'value', 'another' => 'value']);
Parameters
- $key : array<string, mixed>|string
-
The key to set, or a complete array of configs.
- $value : mixed|null = null
-
The value to set.
Return values
$thisdraw()
Render the progress bar based on the current state.
public
draw() : $this
Return values
$thisgetConfig()
Returns the config.
public
getConfig([string|null $key = null ][, mixed $default = null ]) : mixed
Usage
Reading the whole config:
$this->getConfig();
Reading a specific value:
$this->getConfig('key');
Reading a nested value:
$this->getConfig('some.nested.key');
Reading with default value:
$this->getConfig('some-key', 'default-value');
Parameters
- $key : string|null = null
-
The key to get or null for the whole config.
- $default : mixed = null
-
The return value when the key does not exist.
Return values
mixed —Configuration data at the named key or null if the key does not exist.
getConfigOrFail()
Returns the config for this specific key.
public
getConfigOrFail(string $key) : mixed
The config value for this key must exist, it can never be null.
Parameters
- $key : string
-
The key to get.
Tags
Return values
mixed —Configuration data at the named key
increment()
Increment the progress bar.
public
increment([float|int $num = 1 ]) : $this
Parameters
- $num : float|int = 1
-
The amount of progress to advance by.
Return values
$thisinit()
Initialize the progress bar for use.
public
init([array<string|int, mixed> $args = [] ]) : $this
-
total
The total number of items in the progress bar. Defaults to 100. -
width
The width of the progress bar. Defaults to 80.
Parameters
- $args : array<string|int, mixed> = []
-
The initialization data.
Return values
$thisoutput()
Output a progress bar.
public
output(array<string|int, mixed> $args) : void
Takes a number of options to customize the behavior:
-
total
The total number of items in the progress bar. Defaults to 100. -
width
The width of the progress bar. Defaults to 80. -
callback
The callback that will be called in a loop to advance the progress bar.
Parameters
- $args : array<string|int, mixed>
-
The arguments/options to use when outputing the progress bar.
setConfig()
Sets the config.
public
setConfig(array<string, mixed>|string $key[, mixed|null $value = null ][, bool $merge = true ]) : $this
Usage
Setting a specific value:
$this->setConfig('key', $value);
Setting a nested value:
$this->setConfig('some.nested.key', $value);
Updating multiple config settings at the same time:
$this->setConfig(['one' => 'value', 'another' => 'value']);
Parameters
- $key : array<string, mixed>|string
-
The key to set, or a complete array of configs.
- $value : mixed|null = null
-
The value to set.
- $merge : bool = true
-
Whether to recursively merge or overwrite existing config, defaults to true.
Tags
Return values
$this_configDelete()
Deletes a single config key.
protected
_configDelete(string $key) : void
Parameters
- $key : string
-
Key to delete.
Tags
_configRead()
Reads a config key.
protected
_configRead(string|null $key) : mixed
Parameters
- $key : string|null
-
Key to read.
_configWrite()
Writes a config key.
protected
_configWrite(array<string, mixed>|string $key, mixed $value[, string|bool $merge = false ]) : void
Parameters
- $key : array<string, mixed>|string
-
Key to write to.
- $value : mixed
-
Value to write.
- $merge : string|bool = false
-
True to merge recursively, 'shallow' for simple merge, false to overwrite, defaults to false.