Ve výchozím nastavení odesílá Laravel oznámení o ověření e-mailu synchronně při registraci uživatele. To může proces registrace zpomalit. Lepším přístupem je zařadit ověřovací e-mail do fronty, což umožní rychlejší dokončení požadavku, zatímco e-mail je odeslán na pozadí. V tomto článku prozkoumáme, jak toho dosáhnout vytvořením fronty. VerifyEmail a aktualizace třídy User model pro jeho použití.
Krok 1: Vytvoření fronty VerifyEmail Třída
Laravel používá Illuminate\Auth\Notifications\VerifyEmail oznámení pro zasílání ověřovacích e-mailů. Tuto třídu rozšíříme a vytvoříme ji jako frontu.
Spusťte následující příkaz pro vygenerování nové třídy oznámení:
php artisan make:notification QueueableVerifyEmail
Nyní otevřete app/Notifications/QueueableVerifyEmail.php a upravte jej takto:
<?php namespace App\Notifications; use Illuminate\Auth\Notifications\VerifyEmail;use Illuminate\Bus\Queueable;use Illuminate\Contracts\Queue\ShouldQueue; class QueueableVerifyEmail extends VerifyEmail implements ShouldQueue{ use Queueable;}
Tím se zajistí, že oznámení bude při odeslání zařazeno do fronty.
Krok 2: Řekněte Laravelu, aby použil nové oznámení
Dále je třeba aktualizovat User model používat náš nový QueueableVerifyEmail místo výchozí třídy VerifyEmail oznámení.
Otevřít app/Models/User.php a přepsat sendEmailVerificationNotification metoda:
public function sendEmailVerificationNotification(){ $this->notify(new \App\Notifications\QueueableVerifyEmail);}
Nyní Laravel odešle ověřovací e-mail pomocí verze oznámení zařazené do fronty.
Krok 3: Konfigurace systému front
Chcete-li zajistit, aby byly úlohy zařazené do fronty zpracovány, musíte nakonfigurovat systém fronty Laravel. Pokud jste ještě nenastavili ovladač fronty, aktualizujte svůj systém. .env soubor:
QUEUE_CONNECTION=database
Poté vytvořte potřebné databázové tabulky pro úlohy ve frontě:
php artisan queue:tablephp artisan migrate
Nakonec spusťte pracovníka fronty:
php artisan queue:listen
Závěr
Po provedení těchto kroků nyní Laravel při registraci uživatele zařadí ověřovací e-mail do fronty, čímž zlepší výkonnost díky tomu, že doručení e-mailu probíhá na pozadí. Tato jednoduchá úprava může výrazně zlepšit uživatelský komfort tím, že zrychlí a zefektivní registraci.