1. Go to this page and download the library: Download symandy/progress-event library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
symandy / progress-event example snippets
use Symandy\Component\ProgressEvent\EventSubscriber\ProgressBarSubscriber;
use Symandy\Component\ProgressEvent\EventSubscriber\SymfonyStyleSubscriber;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Helper\ProgressBar;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
final class FooCommand extends Command
{
private EventDispatcherInterface $eventDispatcher;
private FooHandler $fooHandler;
// Configure command
protected function execute(InputInterface $input, OutputInterface $output): int
{
// Use the basic progress bar
$this->eventDispatcher->addSubscriber(new ProgressBarSubscriber(new ProgressBar($output)));
// Or use the Symfony style progress bar
$io = new SymfonyStyle($input, $output);
$this->eventDispatcher->addSubscriber(new SymfonyStyleSubscriber($io));
$this->fooHandler->handleComplexTask();
return Command::SUCCESS;
}
}
use Symandy\Component\ProgressEvent\Event\AdvanceEvent;
use Symandy\Component\ProgressEvent\Event\FinishEvent;
use Symandy\Component\ProgressEvent\Event\StartEvent;
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
final class FooHandler
{
private EventDispatcherInterface $eventDispatcher;
public function __construct(EventDispatcherInterface $eventDispatcher)
{
$this->eventDispatcher = $eventDispatcher;
}
public function handleComplexTask(): void
{
$items = ['foo', 'bar', 'baz'];
$this->eventDispatcher->dispatch(new StartEvent(count($items)));
foreach ($items as $item) {
// Handle some complex task
$this->eventDispatcher->dispatch(new AdvanceEvent());
}
$this->eventDispatcher->dispatch(new FinishEvent());
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.