Predpoklady
Pred začatím tohto tutoriálu najskôr vykonajte nasledujúce úlohy:
- Nainštalujte si nový projekt Laravel
- Nastavte pripojenie k databáze
- Nastavte konfiguráciu pre odosielanie e-mailov (Môžete si prečítať návod na odosielanie e-mailov na odosielanie e-mailov pomocou protokolu SMTP)
Vytvorte tabuľku
Musíte vytvoriť pracovných miest tabuľky v databáze na uloženie všetkých front. Spustením nasledujúceho príkazu z terminálu vytvorte migračný súbor pre server pracovných miest stôl.
Poradie remeselníkov $ php: tabuľkaMigračný súbor môžete otvoriť z umiestnenia databáza / migrácie /. Súbor obsahuje nasledujúci obsah.
použite Illuminate \ Database \ Migrations \ Migration;použite Illuminate \ Database \ Schema \ Blueprint;
použite Illuminate \ Support \ Fasády \ Schéma;
trieda CreateJobsTable rozširuje migráciu
/ **
* Spustite migrácie.
*
* @return neplatné
* /
verejná funkcia hore ()
Schema :: create ('jobs', function (Blueprint $ table)
$ table-> bigIncrements ('id');
$ table-> string ('queue') -> index ();
$ table-> longText ('užitočné zaťaženie');
$ table-> unsignedTinyInteger ('pokusy');
$ table-> unsignedInteger ('reserved_at') -> nullable ();
$ table-> unsignedInteger ('available_at');
$ table-> unsignedInteger ('created_at');
);
/ **
* Zvrátiť migráciu.
*
* @return neplatné
* /
verejná funkcia dole ()
Schema :: dropIfExists ('jobs');
Spustením nasledujúceho príkazu z terminálu vytvorte zamestnanie stôl.
$ php remeselník migrujeVytvorte triedu pošty
Musíte vytvoriť vytvoriteľnú triedu na odosielanie e-mailov z aplikácie Laravel. Spustením nasledujúceho príkazu vytvorte triedu pošty s názvom Poslať email na danom mieste aplikácia / pošta.
$ php remeselník make: mail SendEmailObsah tejto triedy je uvedený nižšie. Zobraziť názov súboru, ktorý sa používa v priečinku build () metóda bude vytvorená v nasledujúcej časti tohto tutoriálu.
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 SendEmail rozširuje možnosti správy
používať Queueable, SerializesModels;
/ **
* Vytvorte novú inštanciu správy.
*
* @return neplatné
* /
verejná funkcia __construct ()
//
/ **
* Vytvorte správu.
*
* @ návrat $ this
* /
zostavenie verejnej funkcie ()
/ * Definujte názov zobrazenia, ktorý sa použije pre e-mailovú šablónu * /
vrátiť $ this-> view ('email');
Vytvoriť pohľad
Vytvorte súbor zobrazenia s názvom e-mail.čepeľ.php s nasledujúcim obsahom, ktorý sa odošle ako telo e-mailu.
Vitajte v názve systému Linux
Naučte sa Laravel ľahko
Vytvorte triedu práce
Spustením nasledujúceho príkazu vytvorte triedu práce. Názov triedy práce s názvom SendingEmail.php sa vytvorí v umiestnení aplikácia / Pracovné miesta.
$ php artisan make: job SendingEmailObsah SendingEmail.php je zobrazený nižšie. Musíte zadať platnú e-mailovú adresu vo vnútri servera do () metóda rukoväť () funkcia na otestovanie, či kód funguje správne. Zadajte platnú e-mailovú adresu namiesto „E-mailová adresa príjemcu“ vnútri do () metóda na kontrolu, či fronta funguje správne.
menný priestor App \ Jobs;použitie Illuminate \ Bus \ Queueable;
použite Illuminate \ Contracts \ Queue \ ShouldQueue;
použite Illuminate \ Foundation \ Bus \ Dispatchable;
použite Illuminate \ Queue \ InteractsWithQueue;
použite Illuminate \ Queue \ SerializesModels;
/ * Pridané potrebné balíčky * /
používať Mail;
používať App \ Mail \ SendEmail;
trieda SendingEmail implementuje ShouldQueue
používať Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
/ **
* Vytvorte novú inštanciu úlohy.
*
* @return neplatné
* /
verejná funkcia __construct ()
//
/ **
* Vykonajte prácu.
*
* @return neplatné
* /
verejná funkcia handle ()
/ * Vytvorte objekt triedy mailable a pošlite e-mail * /
$ email = nový SendEmail ();
/ * Nastavte platnú e-mailovú adresu * /
Mail :: to ('Receiver Email Address') -> send ($ email);
Vytvorte radič
Spustením nasledujúceho príkazu vytvorte radič na spracovanie frontu. Keď handleQueue () je vykonaná funkcia radiča, bude zaradená úloha do fronty a e-mail odošle.
$ php remeselník make: kontrolór SendEmailControllerSendEmailController.php
menný priestor App \ Http \ Controllers;použite Illuminate \ Http \ Request;
/ * Pridajte potrebné balíčky * /
používať App \ Jobs \ SendingEmail;
používať uhlík \ uhlík;
trieda SendEmailController rozširuje radič
/ **
* Používanie laravelových front
* /
verejná funkcia handleQueue ()
/ * Zatlačte novú úlohu do frontu úloh * /
Expedícia (nové SendingEmail ());
/ * Tlač správy po odoslaní e-mailu * /
echo 'E-mail bol odoslaný';
Pridať trasu
Otvor web.php súbor z trás priečinok a pridajte nasledujúcu cestu na vykonanie úlohy frontu pomocou radiča.
Route :: get ('email', '[e-mail chránený]');Spustením nasledujúcej adresy URL v prehliadači skontrolujte, či kód funguje. Otvorte e-mailovú adresu príjemcu a skontrolujte, či bol prijatý nový e-mail.
http: // localhost: 8000 / emailqueue
Pridajte oneskorenie
Otvor SendingEmail.php súbor znova a upravte obsah súboru handleQueue () funkcia na pridanie päťsekundového oneskorenia k úlohám vo fronte.
menný priestor App \ Http \ Controllers;použite Illuminate \ Http \ Request;
/ * Pridajte potrebné balíčky * /
používať App \ Jobs \ SendingEmail;
používať uhlík \ uhlík;
trieda SendEmailController rozširuje radič
/ **
* Používanie laravelových front
* /
verejná funkcia handleQueue ()
/ * Vytvorte nový objekt frontu s 5-sekundovým oneskorením * /
$ emailJob = (nový SendingEmail ()) -> oneskorenie (Carbon :: now () -> addSeconds (5));
/ * Zatlačte novú úlohu do frontu úloh * /
Expedícia ($ emailJob);
/ * Tlač správy po odoslaní e-mailu * /
echo 'E-mail odoslaný po piatich sekundách';
V prehliadači znova spustite nasledujúcu adresu URL, aby ste skontrolovali, či kód funguje. Tu bude e-mail odoslaný po piatich sekundách pomocou metódy delay () v trvaní piatich sekúnd.
http: // localhost: 8000 / emailqueue
Skontrolujte doručenú poštu e-mailovej adresy príjemcu a zistite, či bol po 5 sekundách prijatý nový e-mail. Ak úloha vo fronte funguje správne, dostanete e-mail s nasledujúcim obsahom.
Záver
Tento tutoriál ukazuje veľmi jednoduché použitie frontu Laravel. Fronty Laravel môžete použiť na rôzne účely na základe vašich požiadaviek na aplikáciu. Dúfam, že tento tutoriál pomohol čitateľom lepšie pochopiť základné pojmy laravelových front.