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();
createProgressBar()
vytvorí inštanciu progress baru. Ako parameter definujete celkový počet krokov, ktoré sa budú vykonávať.advance()
zakaždým, keď vykonáte jeden krokfinish()
. 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
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ť