xvital

Pozrime sa na okrajovú záležitosť pre fajnšmekrov, ktorá sa môže hodiť práve vám.

V mnohých projektoch som si všimol, že na zobrazenie aktuálneho stavu vykonávania určitej operácie sa používa vypisovanie na štandardný výstup do konzoly. Je to klasické riešenie, ktoré funguje dobre. Pri rozsiahlejších operáciach však môže dochádzať ku generovaniu neprimerane dlhých výstupov a tým pádom "špineniu" konzoly.

Laravel ponúka veľmi elegantnú možnosť, ako takú situáciu riešiť pomocou progress baru. Riešenie je požičané zo Symfony a funguje naozaj perfektne.

$posts = App\Posts::all();

$bar = $this->output->createProgressBar(count($posts));

foreach ($posts as $post) {
    $this->updatePost($post);

    $bar->advance();
}

$bar->finish();
  1. createProgressBar() vytvorí inštanciu progress baru. Ako parameter definujete celkový počet krokov, ktoré sa budú vykonávať.
  2. V tele cyklu zavoláte advance() zakaždým, keď vykonáte jeden krok
  3. Na záver zavoláte finish(). Zabezpečí, že progress bar bude na 100%.

Poznámka: v prípade, že chcete inkementovať progress bar o viac krokov naraz, stačí metóde advance parametrom predať počet krokov.

Viac infomrácií k progress barom nájdete v dokumentácii Laravelu alebo Symfony

Ešte nie si členom CZ/SK Laravel komunity?

To možeš ľahko zmeniť. Registrácia je zdarma a ako registrovaný člen získaš množstvo výhod. Prečítaj si prečo by si mal byť členom.

Prihlásiť sa Zaregistrovať