Co a jak dělá php artisan optimize:clear?

Úvod Při práci na aplikacích Laravel, zejména během vývoje nebo nasazení, je často třeba zajistit, aby soubory v mezipaměti aplikace nebyly zastaralé. Laravel poskytuje výkonný př...

Poptat web

25. 07. 2025

Co a jak dělá php artisan optimize:clear?

Úvod

Při práci na aplikacích Laravel, zejména během vývoje nebo nasazení, je často třeba zajistit, aby soubory v mezipaměti aplikace nebyly zastaralé. Laravel poskytuje výkonný příkaz Artisan přesně pro tento účel: php artisan optimize:clear. Tento příkaz vymaže různé soubory v mezipaměti, aby pomohl zabránit chybám, chybné konfiguraci nebo spuštění zastaralého kódu.

Co však tento příkaz skutečně dělá pod kapotou? Jak si můžete jeho chování přizpůsobit? A jak jej mohou integrovat vývojáři balíčků? Podívejme se na to blíže.

Co dělá optimize:clear jasné?

Na stránkách optimize:clear Příkaz je zodpovědný za vymazání sady souborů v mezipaměti, které Laravel používá ke zlepšení výkonu. Zde jsou příkazy, které provádí ve výchozím nastavení:

  • config:clear - Vymaže konfiguraci uloženou v mezipaměti.
  • cache:clear - Vymaže mezipaměť aplikace.
  • clear-compiled - Vymaže zkompilované třídy.
  • event:clear - Vymaže události uložené v mezipaměti.
  • route:clear - Vymaže vyrovnávací paměť trasy.
  • view:clear - Vymaže zkompilované pohledy Blade.

Kromě toho může každý balíček do tohoto seznamu přispět dalšími příkazy tím, že zaregistruje své vlastní příkazy.

Jak přeskočit příkazy spuštěné optimize:clear

Ve výchozím nastavení, optimize:clear spustí všechny výše uvedené příkazy. Laravel však nabízí způsob, jak vyloučit konkrétní příkazy pomocí --except možnost.

php artisan optimize:clear --except=views,cache

Tento příklad přeskočí view:clear a cache:clear příkazů, ale zbytek spustí. Volba přijímá seznam klíčů oddělených čárkou, které odpovídají názvům úloh (jako např. views, cache, routes, atd.) nebo úplný příkaz Artisan (jako např. view:clear).

Laravel interně analyzuje příkaz --except a před provedením zbývajících příkazů odfiltruje všechny vyhovující příkazy.

Jak se mohou vývojáři balíčků Laravel připojit k optimize:clear

Laravel umožňuje vývojářům balíčků jednoduše se připojit k systému optimize:clear proces. V metodě spouštění poskytovatele služeb balíčku můžete zavolat příkaz optimizes a předejte vlastní signaturu příkazu, abyste ji zaregistrovali jako součást rutiny čištění:

// In your package's service provider boot() method
$this->optimizes(clear:'my-package:clear-cache');

To způsobí, že optimize:clear ke spuštění vlastního příkazu Artisan, pokud jej uživatel výslovně nepřeskočí pomocí příkazu --except možnost.

Příklad

use Illuminate\Support\ServiceProvider;
 
class MyPackageServiceProvider extends ServiceProvider
{
public function boot()
{
$this->optimizes(clear:'my-package:clear-cache');
}
}

Když nyní vývojář spustí php artisan optimize:clear, Laravel také spustí váš my-package:clear-cache v rámci procesu čištění.

Závěr

Na stránkách php artisan optimize:clear Příkaz je víc než jen pohodlný nástroj, je to rozšiřitelná a přizpůsobitelná brána k vyčištění výkonnostní mezipaměti Laravelu. Ať už ladíte špatně fungující aplikaci, nebo nasazujete novou verzi do produkce, porozumění tomu, jak tento příkaz funguje (a jak jej přizpůsobit nebo rozšířit), vám může ušetřit čas a bolesti hlavy.

Do tohoto životního cyklu se mohou zapojit také autoři balíčků, čímž zajistí, že jejich logika čištění mezipaměti bude hladce integrována do prostředí vývojářů Laravelu.

Používejte ji s rozumem a udržujte aplikaci v čistém a bezproblémovém chodu.

Původní článek publikoval Nabil Hassen.