laravel

Výukový program Laravel Scheduler

Výukový program Laravel Scheduler
Některé úkoly je nutné pravidelně provádět v jakékoli aplikaci a bylo by efektivnější, kdyby se úkoly daly provádět automaticky. Laravelův rámec usnadňuje tyto typy úkolů pomocí Laravel Scheduler. Odesílání hromadných e-mailů souvisejících s nabídkami, optimalizace dat, generování zpráv, udržování zálohy aplikací a odstraňování neaktivních uživatelů jsou některé běžné příklady opakujících se úkolů, které lze provádět pomocí Laravel Scheduler. Laravel může pravidelně provádět konkrétní úkoly pomocí vestavěného správce úloh s názvem Kukuřice práce. Konfigurační soubor s názvem Corntab používá Kukuřice pro správu plánovacích úkolů. Tento kurz vám ukáže, jak spravovat opakující se úkoly vytvořením Kukuřice úlohy a provádění plánování úkolů.

Předpoklady

Před zahájením tohoto kurzu nejprve proveďte následující úkoly:

  1. Vytvořte nový projekt laravel
  2. Nastavte připojení k databázi
  3. Spusťte příkaz migrate a vytvořte uživatelskou tabulku
  4. Nastavte konfiguraci pro odesílání e-mailů (pro odesílání e-mailů se zde používá SMTP.)

Implementujte výchozí ověřování

Nejprve implementujte výchozí systém ověřování uživatelů Laravel k dokončení plánovací úlohy zobrazené v tomto kurzu. Spusťte následující příkazy z terminálu a implementujte výchozí ověřování laravel pomocí Vue.

$ skladatel vyžaduje laravel / ui
$ php řemeslník ui vue -auth

Spuštěním následujícího příkazu zkompilujte čerstvé lešení, abyste získali aktualizovaný obsah.

$ npm install && npm run dev

Spuštěním následujícího příkazu vymažete mezipaměť trasy.

$ php artisan route: clear

Spuštěním následujícího příkazu spusťte vývojový server Laravel a zkontrolujte, zda funguje výchozí systém ověřování uživatelů.

$ php řemeslník slouží

Otevřete libovolný prohlížeč a v prohlížeči spusťte následující adresu URL. Pokud přihlásit se a Registrovat zobrazí se odkaz a funguje správně, pak byla implementace výchozího ověřování dokončena správně.

http: // localhost: 8000

Vytvořte Mailable Class a Artisan Command

Mnoho nových uživatelů bude vytvářet účty denně a bude provádět mnoho úkolů souvisejících s registrovanými uživateli, když je projekt online. Někdy aplikace potřebuje vědět, kolik uživatelů si každý den vytvořilo účty. Pokud jsou tyto informace vyžadovány pravidelně, je lepší provést určitý dotaz po pravidelném intervalu. Příkaz Laravel se zde používá k získání informací o aktuálně registrovaných uživatelích a k odeslání těchto informací e-mailem správci nebo určené osobě se použije třída mailable.

Spuštěním následujícího příkazu vytvořte třídu pro zasílání e-mailů. Vytvoří soubor s názvem SendUsersList.php v místě aplikace / pošta.

$ php řemeslník make: mail SendUsersList

Otevřete soubor a upravte obsah, jako v následujícím kódu.

jmenný prostor App \ Mail;
použijte Illuminate \ Bus \ Queueable;
použijte Illuminate \ Contracts \ Queue \ ShouldQueue;
použijte Illuminate \ Mail \ Mailable;
použijte Illuminate \ Queue \ SerializesModels;
třída SendUsersList rozšiřuje Mailable

používat Queueable, SerializesModels;
/ * Deklarovat proměnnou pole * /
public $ userList = array ();
/ **
* Vytvořte novou instanci zprávy.
*
* @return void
* /
veřejná funkce __construct ($ userList)

/ * Inicializujte proměnnou pole proměnnou předanou
vytvoření objektu třídy. * /
$ this-> userList = $ userList;

/ **
* Sestavte zprávu.
*
* @return $ this
* /
veřejná funkce build ()

/ * Zobrazte soubor zobrazení s hodnotami proměnné pole * /
vrátit $ this-> view ('registeredList') -> with ('userList', $ this-> userList);

Spuštěním následujícího příkazu vytvořte vlastní příkaz Laravel s názvem RegisterUsersList, který provede dotaz a získá seznam informací registrovaných uživatelů každý den. Příkaz vytvoří soubor s názvem RegisterUsersList.php v místě aplikace / Příkazy.

$ php artisan make: command RegisterUsersList --command = registered: users

Otevřete soubor a upravte obsah pomocí následujícího kódu, abyste odeslali seznam aktuálně registrovaných uživatelů aktuálního systému na konkrétní e-mailovou adresu.

jmenný prostor App \ Console \ Commands;
použijte Illuminate \ Console \ Command;
/ * Importujte potřebné balíčky * /
používat Mail;
použijte App \ Mail \ SendUsersList;
použijte DB;
použijte Carbon \ Carbon;
použijte App \ Console \ Commands \ DateTime;
třída RegisterUsersList rozšiřuje příkaz

/ **
* Název a podpis příkazu konzoly.
*
* @var řetězec
* /
/ * Přidat hodnotu podpisu * /
protected $ signature = 'registered: users';
/ **
* Popis příkazu konzoly.
*
* @var řetězec
* /
protected $ description = 'Seznam registrovaných uživatelů';
/ **
* Vytvořte novou instanci příkazu.
*
* @return void
* /
veřejná funkce __construct ()

parent :: __ construct ();

/ **
* Proveďte příkaz konzoly.
*
* @return int
* /
popisovač veřejné funkce ()

/ * Přečtěte si aktuální systémové datum * /
$ today = Carbon :: now () -> toDateString ();
/ * Získejte seznam informací o uživatelích, kteří jsou registrováni
v aktuálním systémovém datu * /
$ current_registered_users =
DB :: table ('users') -> whereDate ('created_at', $ today) -> get () -> toArray ();
/ * Vytvořte objekt třídy mailable s proměnnou pole
který obsahuje seznam aktuálně registrovaných uživatelů * /
$ email = new SendUsersList ($ current_registered_users);
/ * Odeslat e-mail pomocí třídy Mail * /
Mail :: to ('email address address') -> send ($ email);

Nastavit plán pro provedení příkazu

Otevři Jádro.php soubor z umístění aplikace / konzole a upravte obsah pomocí následujícího kódu. Můžete nastavit různé typy možností plánované frekvence. Seznam získáte z tohoto odkazu. Zde se používá hodinový plán.

jmenný prostor App \ Console;
použijte Illuminate \ Console \ Scheduling \ Schedule;
použijte Illuminate \ Foundation \ Console \ Kernel jako ConsoleKernel;
třída Kernel rozšiřuje ConsoleKernel

/ **
* Příkazy Artisan poskytované vaší aplikací.
*
* @var pole
* /
/ * Inicializujte proměnnou $ commands * /
chráněné $ příkazy = [
'App \ Console \ Commands \ RegisterUsersList',
];
/ **
* Definujte plán příkazů aplikace.
*
* @param \ Illuminate \ Console \ Scheduling \ Schedule $ schedule
* @return void
* /
plán chráněných funkcí (Schedule $ schedule)

/ * Nastavit hodinový plán * /
$ schedule-> command ('registered: users') -> hourly ();

/ **
* Zaregistrujte příkazy pro aplikaci.
*
* @return void
* /
příkazy chráněné funkce ()

$ this-> načíst (__ DIR__.'/ Příkazy');
vyžadují base_path ('trasy / konzole.php ');

Vytvořit pohled

Vytvořte registeredList.čepel.php zobrazit soubor s následujícím kódem.


@if (count ($ userList)> 0)

Níže uvedený seznam uživatelů je uveden níže:


@foreach ($ userList jako $ user)
$ user-> name

@endforeach
@jiný
Dnes ještě není registrován žádný uživatel.
@endif

Spusťte příkaz:

Spuštěním následujících příkazů vymažte mezipaměť.

$ php artisan cache: clear
$ php řemeslná konfigurace: mezipaměť

Spusťte následující příkaz řemeslníka z terminálu, abyste provedli dříve vytvořený vlastní příkaz a zkontrolovali výstup.

$ php artisan registered: users

Zkontrolujte e-mailovou adresu příjemce a zjistěte výstup. Pokud není vytvořen žádný uživatel, zobrazí se následující výstup.

Vytvořte nový uživatelský účet a znovu zkontrolujte e-mail.

Závěr

Laravel Scheduler usnadňuje provádění opakovaných úkolů pro aplikaci. Po přečtení tohoto tutoriálu by čtenáři měli mít jasnou představu o koncepcích vytváření vlastních příkazů a implementaci automatizovaných úkolů pomocí Laravel Scheduler.

Hry Top 10 her k hraní na Ubuntu
Top 10 her k hraní na Ubuntu
Platforma Windows byla jednou z dominujících platforem pro hraní her kvůli velkému procentu her, které se dnes vyvíjejí, aby nativně podporovaly Windo...
Hry 5 nejlepších arkádových her pro Linux
5 nejlepších arkádových her pro Linux
V dnešní době jsou počítače vážné stroje používané k hraní her. Pokud nemůžete získat nové vysoké skóre, budete vědět, co tím myslím. V tomto příspěvk...
Hry Battle For Wesnoth 1.13.6 Vývoj uvolněn
Battle For Wesnoth 1.13.6 Vývoj uvolněn
Battle For Wesnoth 1.13.6 vydané minulý měsíc, je šestým vývojovým vydáním v 1.13.série x a přináší řadu vylepšení, zejména do uživatelského rozhraní,...