Predpoklady
Pred začatím tohto tutoriálu najskôr vykonajte nasledujúce úlohy:
- Vytvorte nový projekt Laravel
- Nastavte pripojenie k databáze
- Spustite príkaz migrate a vytvorte tabuľku používateľov
- Nastavte konfiguráciu pre odosielanie e-mailov (tu sa používa SMTP na odosielanie e-mailov.)
Implementujte predvolené overenie
Najskôr implementujte predvolený systém autentifikácie používateľa Laravel, aby ste dokončili úlohu plánovania uvedenú v tomto návode. Spustením nasledujúcich príkazov z terminálu implementujte predvolené overenie laravel pomocou Vue.
$ skladateľ vyžaduje laravel / ui$ php remeselník ui vue -auth
Spustením nasledujúceho príkazu zostavte čerstvé lešenie, aby ste získali aktualizovaný obsah.
$ npm inštalácia && npm spustiť devSpustením nasledujúceho príkazu vymažete medzipamäť trasy.
Trasa remeselníka $ php: jasnáSpustením nasledujúceho príkazu spustíte vývojový server Laravel a skontrolujte, či funguje predvolený systém overovania používateľov.
$ php remeselník slúži
Otvorte ľubovoľný prehľadávač a v prehliadači spustite nasledujúcu adresu URL. Ak Prihlásiť sa a Registrovať odkaz sa zobrazí a funguje správne, potom bola implementácia predvoleného overenia totožnosti dokončená správne.
http: // localhost: 8000
Vytvorte Mailable Class a Artisan Command
Mnoho nových používateľov bude vytvárať účty každý deň a bude vykonávať veľa úloh týkajúcich sa registrovaných používateľov, keď je projekt online. Aplikácia niekedy potrebuje vedieť, koľko používateľov si každý deň vytvorilo účty. Ak sú tieto informácie požadované pravidelne, je lepšie vykonať konkrétny dopyt po pravidelnom intervale. Tu sa používa príkaz Laravel na získanie informácií o aktuálne registrovaných používateľoch a na odosielanie týchto informácií e-mailom správcovi alebo určenej osobe sa použije trieda mailable.
Spustením nasledujúceho príkazu vytvorte zostaviteľnú triedu na odosielanie e-mailov. Vytvorí sa súbor s názvom SendUsersList.php na danom mieste aplikácia / pošta.
$ php remeselník make: mail SendUsersListOtvorte súbor a upravte obsah, ako je uvedené v nasledujúcom kóde.
menný priestor App \ Mail;použitie Illuminate \ Bus \ Queueable;
použite Illuminate \ Contracts \ Queue \ ShouldQueue;
použite Illuminate \ Mail \ Mailable;
použite Illuminate \ Queue \ SerializesModels;
trieda SendUsersList rozširuje možnosť Mailable
používať Queueable, SerializesModels;
/ * Deklarujte premennú poľa * /
public $ userList = array ();
/ **
* Vytvorte novú inštanciu správy.
*
* @return neplatné
* /
verejná funkcia __construct ($ userList)
/ * Inicializuje premennú poľa premennou odovzdanou
objektové vytvorenie triedy. * /
$ this-> userList = $ userList;
/ **
* Vytvorte správu.
*
* @ návrat $ this
* /
zostavenie verejnej funkcie ()
/ * Zahrajte zobrazený súbor s hodnotami premennej poľa * /
vrátiť $ this-> view ('registeredList') -> with ('userList', $ this-> userList);
Spustením nasledujúceho príkazu vytvorte vlastný príkaz Laravel s názvom RegisterUsersList, ktorý vykoná dopyt a získa zoznam informácií registrovaných používateľov každý deň. Príkaz vytvorí súbor s názvom RegisterUsersList.php na danom mieste aplikácia / Príkazy.
$ php artisan make: command RegisterUsersList --command = registered: usersOtvorte súbor a upravte obsah pomocou nasledujúceho kódu, aby sa zoznam konkrétnych registrovaných používateľov aktuálneho systému odoslal na konkrétnu e-mailovú adresu.
menný priestor App \ Console \ Commands;použite Illuminate \ Console \ Command;
/ * Import potrebných balíkov * /
používať Mail;
používať App \ Mail \ SendUsersList;
použite DB;
používať uhlík \ uhlík;
používať App \ Console \ Commands \ DateTime;
trieda RegisterUsersList rozširuje príkaz
/ **
* Názov a podpis príkazu konzoly.
*
* @var reťazec
* /
/ * Pridať hodnotu podpisu * /
protected $ signature = 'registered: users';
/ **
* Popis príkazu konzoly.
*
* @var reťazec
* /
protected $ description = 'Zoznam registrovaných užívateľov';
/ **
* Vytvorte novú inštanciu príkazu.
*
* @return neplatné
* /
verejná funkcia __construct ()
parent :: __ construct ();
/ **
* Vykonajte príkaz konzoly.
*
* @return int
* /
verejná funkcia handle ()
/ * Prečítajte si aktuálny systémový dátum * /
$ today = Carbon :: now () -> toDateString ();
/ * Získajte zoznam informácií o používateľoch, ktorí sú registrovaní
v aktuálnom systémovom dátume * /
$ current_registered_users =
DB :: table ('users') -> whereDate ('created_at', $ today) -> get () -> toArray ();
/ * Vytvorte objekt triedy mailable s premennou poľa
ktorý obsahuje zoznam aktuálne registrovaných používateľov * /
$ email = new SendUsersList ($ current_registered_users);
/ * Posielanie e-mailov pomocou triedy Mail * /
Mail :: to ('email address recipient') -> send ($ email);
Nastavte plán vykonania príkazu
Otvor Jadro.php súbor z umiestnenia aplikácia / konzola a upravte obsah pomocou nasledujúceho kódu. Môžete nastaviť rôzne typy možností frekvencie plánovania. Zoznam získate z tohto odkazu. Tu sa používa hodinový rozvrh.
menný priestor App \ Console;použite Illuminate \ Console \ Scheduling \ Schedule;
použite Illuminate \ Foundation \ Console \ Kernel ako ConsoleKernel;
triedy jadro rozširuje ConsoleKernel
/ **
* Príkazy remeselníka poskytované vašou aplikáciou.
*
* @var pole
* /
/ * Inicializujte premennú $ commands * /
chránené $ príkazy = [
„App \ Console \ Commands \ RegisterUsersList“,
];
/ **
* Definujte plán príkazov aplikácie.
*
* @param \ Illuminate \ Console \ Scheduling \ Schedule $ schedule
* @return neplatné
* /
plán chránených funkcií (plán rozvrhu $)
/ * Nastaviť hodinový rozvrh * /
$ schedule-> command ('registered: users') -> hourly ();
/ **
* Zaregistrujte príkazy pre aplikáciu.
*
* @return neplatné
* /
príkazy chránených funkcií ()
$ this-> načítať (__ DIR__.„/ Príkazy“);
vyžadujú base_path ('trasy / konzola.php ');
Vytvoriť pohľad
Vytvorte registeredList.čepeľ.php zobraziť súbor s nasledujúcim kódom.
@if (count ($ userList)> 0)
Zoznam registrovaných používateľov je uvedený nižšie:
@foreach ($ userList ako $ user)
$ user-> meno
@endforeach
@ alse
Zatiaľ nie je registrovaný žiadny používateľ.
@koniec Ak
Spustite príkaz:
Spustením nasledujúcich príkazov vymažte vyrovnávaciu pamäť.
Cache remeselníka $ php: vyčistiť$ php remeselník config: cache
Spustením nasledujúceho remeselného príkazu z terminálu vykonajte predtým vytvorený vlastný príkaz a skontrolujte výstup.
$ php remeselník registrovaný: používateliaSkontrolujte výstupnú e-mailovú adresu príjemcu. Nasledujúci výstup sa zobrazí, ak nie je vytvorený žiadny užívateľ.
Vytvorte nový používateľský účet a znova skontrolujte e-mail.
Záver
Laravel Scheduler uľahčuje vykonávanie opakujúcich sa úloh aplikácie. Po prečítaní tohto tutoriálu by teraz čitatelia mali mať jasnú predstavu o konceptoch vytvárania vlastných príkazov a implementácii automatizovaných úloh pomocou Laravel Scheduler.