Освоение Artisan Progress Bar в Laravel: подробное руководство

Интерфейс командной строки Artisan (CLI) Laravel предоставляет широкий спектр мощных инструментов для разработки и управления приложениями Laravel. Одним из таких инструментов является индикатор выполнения, который позволяет отображать ход выполнения длительной задачи в визуально привлекательной и информативной форме. В этой статье мы рассмотрим различные методы использования индикатора выполнения Laravel Artisan, сопровождаемые примерами кода.

  1. Основное использование:
    Самый простой способ использовать индикатор выполнения — вызвать метод info, передав сообщение о ходе выполнения в качестве параметра. Вот пример:
use Illuminate\Console\Command;
class MyCommand extends Command
{
    public function handle()
    {
        $this->info('Processing started...');
        // Perform your task here
        $this->info('Processing completed!');
    }
}
  1. Пользовательский индикатор выполнения:
    Laravel Artisan позволяет вам настроить внешний вид индикатора выполнения, указав формат, символ и параметры. Вы можете использовать свойство outputдля доступа к базовому экземпляру вывода Symfony Console и изменения индикатора выполнения. Вот пример:
use Illuminate\Console\Command;
class MyCommand extends Command
{
    public function handle()
    {
        $bar = $this->output->createProgressBar(100);
        $bar->setFormat(' %current%/%max% [%bar%] %percent:3s%%');
        $bar->setBarCharacter('<fg=green>█</>');
        $bar->start();
        for ($i = 0; $i < 100; $i++) {
            // Perform your task here
            $bar->advance();
            usleep(10000);
        }
        $bar->finish();
        $this->line('');
        $this->info('Processing completed!');
    }
}
  1. Расширенный индикатор выполнения:
    Laravel Artisan предоставляет дополнительные методы для динамического управления индикатором выполнения. Вы можете обновить ход выполнения, изменить выходное сообщение и даже настроить цвета индикатора выполнения. Вот пример:
use Illuminate\Console\Command;
class MyCommand extends Command
{
    public function handle()
    {
        $this->output->progressStart(100);
        for ($i = 0; $i < 100; $i++) {
            // Perform your task here
            $this->output->progressAdvance();
            usleep(10000);
            if ($i === 50) {
                $this->output->progressMessage('Halfway there!');
            }
        }
        $this->output->progressFinish();
        $this->info('Processing completed!');
    }
}

Индикатор выполнения Laravel Artisan — ценный инструмент, позволяющий информировать пользователей о ходе выполнения долгосрочных задач. В этой статье мы рассмотрели различные методы использования этой функции, включая базовое использование, настройку индикатора выполнения и расширенные методы динамического обновления. Включив эти методы в свои приложения Laravel, вы сможете улучшить взаимодействие с пользователем и обеспечить обратную связь в режиме реального времени во время длительных операций.

Не забывайте использовать эти методы разумно и адаптировать их в соответствии с требованиями вашего конкретного приложения. Приятного программирования с Laravel Artisan!