Repository URL to install this package:
|
Version:
6.2.0 ▾
|
digitalascetic/batch-util
/
ComposedProgressMonitor.php
|
|---|
<?php
/**
* Created by IntelliJ IDEA.
* User: martino
* Date: 07/04/18
* Time: 10:13
*/
namespace DigitalAscetic\BatchUtil;
/**
* Class ComposedProgressMonitor
* @package DigitalAscetic\BatchUtil
*/
class ComposedProgressMonitor extends AbstractProgressMonitor
{
/**
* @var BatchProgressMonitor[]
*/
private array $monitors;
/**
* ComposedProgressMonitor constructor.
* @param BatchProgressMonitor[] $monitors
*/
public function __construct(array $monitors = array())
{
parent::__construct();
$this->monitors = $monitors;
}
/**
* @param null $data
*/
public function start($data = null): void
{
foreach ($this->monitors as $monitor) {
$monitor->start($data);
}
$this->started = true;
}
/**
* @param null $data
*/
public function advance($data = null): void
{
foreach ($this->monitors as $monitor) {
$monitor->advance($data);
}
}
/**
* @param null $data
*/
public function finish($data = null): void
{
foreach ($this->monitors as $monitor) {
$monitor->finish($data);
}
$this->finished = true;
}
/**
* @param null $data
*/
public function message($data = null): void
{
foreach ($this->monitors as $monitor) {
$monitor->message($data);
}
}
/**
* @param int $count
*/
public function setTotalSteps(int $count = 0): void
{
foreach ($this->monitors as $monitor) {
$monitor->setTotalSteps($count);
}
}
/**
* @param BatchProgressMonitor $monitor
*/
public function addMonitor(BatchProgressMonitor $monitor)
{
$this->monitors[] = $monitor;
}
}