Pogoji
Pred začetkom te vaje najprej opravite naslednje naloge:
- Namestite nov projekt Laravel
- Nastavite povezavo z bazo podatkov
- Nastavite konfiguracijo za pošiljanje e-pošte (preverite lahko vadnico za pošiljanje e-pošte za pošiljanje e-pošte prek SMTP)
Ustvari tabelo
Ustvariti morate službe tabelo v zbirki podatkov za shranjevanje vseh čakalnih vrst. Iz terminala zaženite naslednji ukaz, da ustvarite selitveno datoteko za službe tabela.
$ php obrtniška vrsta: tabelaDatoteko za selitev lahko odprete z lokacije baza podatkov / selitve /. Datoteka vsebuje naslednjo vsebino.
uporabite Illuminate \ Database \ Migrations \ Migration;uporabite Illuminate \ Database \ Schema \ Blueprint;
uporabite shemo Illuminate \ Support \ Facades \;
class CreateJobsTable razširja selitev
/ **
* Zaženite selitve.
*
* @ vrnitev nična
* /
javna funkcija navzgor ()
Schema :: create ('jobs', function (Blueprint $ table)
$ table-> bigIncrements ('id');
$ tabela-> niz ('čakalna vrsta') -> indeks ();
$ tabela-> longText ('koristni tovor');
$ table-> unsignedTinyInteger ('poskusi');
$ table-> unsignedInteger ('rezerviran_at') -> nullable ();
$ table-> unsignedInteger ('available_at');
$ table-> unsignedInteger ('created_at');
);
/ **
* Povratne selitve.
*
* @ vrnitev nična
* /
javna funkcija navzdol ()
Schema :: dropIfExists ('delovna mesta');
Iz terminala zaženite naslednji ukaz, da ustvarite službo tabela.
$ php obrtnik seliUstvari razred pošte
Za pošiljanje e-pošte iz aplikacije Laravel morate ustvariti razpoložljiv razred. Zaženite naslednji ukaz, da ustvarite imenovani poštni razred Pošlji sporočilo na lokaciji app / Mail.
$ php artisan make: mail SendEmailVsebina tega predavanja je prikazana spodaj. Ime datoteke pogleda, ki se uporablja v zgraditi () metoda bo ustvarjena v naslednjem delu te vadnice.
imenski prostor App \ Mail;uporabite Illuminate \ Bus \ Queueable;
uporabite Illuminate \ Contracts \ Queue \ ShouldQueue;
uporabite Illuminate \ Mail \ Mailable;
uporabite Illuminate \ Queue \ SerializesModels;
razred SendEmail razširi Maible
uporabite Queueable, SerializesModels;
/ **
* Ustvarite nov primerek sporočila.
*
* @ vrnitev nična
* /
javna funkcija __construct ()
//
/ **
* Zgradite sporočilo.
*
* @ vrni $ this
* /
build javne funkcije ()
/ * Določite ime pogleda, ki bo uporabljeno za e-poštno predlogo * /
vrni $ this-> view ('email');
Ustvari pogled
Ustvarite poimenovano datoteko pogleda E-naslov.rezilo.php z naslednjo vsebino, ki bo poslana kot telo e-pošte.
Dobrodošli v namigu za Linux
Laravel se naučite enostavno
Ustvarite Job Class
Zaženite naslednji ukaz, da ustvarite razred opravila. Poimenovano ime datoteke delovnega razreda Pošiljanje e-pošte.php bo ustvarjena na lokaciji app / Jobs.
$ php artisan make: job SendingEmailVsebina Pošiljanje e-pošte.php je prikazano spodaj. V notranjosti datoteke morate nastaviti veljaven e-poštni naslov do () metoda ročaj () funkcija za preverjanje, ali koda deluje pravilno. Nastavite veljaven e-poštni naslov namesto 'E-poštni naslov prejemnika' znotraj do () , da preverite, ali vrsta deluje pravilno.
imenski prostor App \ Jobs;uporabite Illuminate \ Bus \ Queueable;
uporabite Illuminate \ Contracts \ Queue \ ShouldQueue;
uporabite Illuminate \ Foundation \ Bus \ Dispatchable;
uporabite Illuminate \ Queue \ InteractsWithQueue;
uporabite Illuminate \ Queue \ SerializesModels;
/ * Dodani so potrebni paketi * /
uporabljati pošto;
uporabite App \ Mail \ SendEmail;
razred SendingEmail implementira ShouldQueue
uporabite Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
/ **
* Ustvarite nov primerek opravila.
*
* @ vrnitev nična
* /
javna funkcija __construct ()
//
/ **
* Izvedite delo.
*
* @ vrnitev nična
* /
ročaj javne funkcije ()
/ * Ustvari objekt predanega razreda in pošlji e-pošto * /
$ email = nov SendEmail ();
/ * Nastavite veljaven e-poštni naslov * /
Mail :: to ('E-poštni naslov prejemnika') -> pošlji ($ email);
Ustvari krmilnik
Zaženite naslednji ukaz, da ustvarite krmilnik za obdelavo čakalne vrste. Ko handleQueue () Funkcija krmilnika se izvede, opravilo čakalne vrste bo potisnjeno in e-pošta bo poslana.
$ php artisan make: krmilnik SendEmailControllerSendEmailController.php
imenski prostor App \ Http \ Controllers;uporabite Illuminate \ Http \ Request;
/ * Dodajte potrebne pakete * /
uporabite App \ Jobs \ SendingEmail;
uporabite Carbon \ Carbon;
razred SendEmailController razširja Controller
/ **
* Uporaba čakalnih vrst Laravel
* /
javna funkcija handleQueue ()
/ * Potisnite novo opravilo v čakalno vrsto * /
odpošiljanje (novo SendingEmail ());
/ * Natisni sporočilo po pošiljanju e-pošte * /
echo 'E-pošta je bila poslana';
Dodaj pot
Odprite splet.php datoteko iz poti mapo in dodajte naslednjo pot za izvedbo opravila v čakalni vrsti s krmilnikom.
Route :: get ('email', '[email protected]');V brskalniku zaženite naslednji URL, da preverite, ali koda deluje. Odprite e-poštni naslov sprejemnika in preverite, ali je bilo prejeto novo e-poštno sporočilo.
http: // localhost: 8000 / emailqueue
Dodaj zamudo
Odprite Pošiljanje e-pošte.php znova datoteko in spremenite vsebino datoteke handleQueue () funkcija za dodajanje petsekundne zamude opravilom v čakalni vrsti.
imenski prostor App \ Http \ Controllers;uporabite Illuminate \ Http \ Request;
/ * Dodajte potrebne pakete * /
uporabite App \ Jobs \ SendingEmail;
uporabite Carbon \ Carbon;
razred SendEmailController razširja Controller
/ **
* Uporaba čakalnih vrst Laravel
* /
javna funkcija handleQueue ()
/ * Ustvari nov objekt v čakalni vrsti s 5-sekundno zamudo * /
$ emailJob = (new SendingEmail ()) -> delay (Carbon :: now () -> addSeconds (5));
/ * Potisnite novo opravilo v čakalno vrsto * /
odprema ($ emailJob);
/ * Natisni sporočilo po pošiljanju e-pošte * /
echo 'E-pošta poslana po petih sekundah';
V brskalniku znova zaženite naslednji URL, da preverite, ali koda deluje. Tukaj bo e-poštno sporočilo poslano po petih sekundah z uporabo metode delay () v petih sekundah.
http: // localhost: 8000 / emailqueue
Preverite nabiralnik e-poštnega naslova prejemnika in ugotovite, ali je bilo po 5 sekundah prejeto novo e-poštno sporočilo. Če opravilo v čakalni vrsti deluje pravilno, bomo prejeli e-poštno sporočilo z naslednjo vsebino.
Zaključek
Ta vadnica prikazuje zelo preprosto uporabo čakalne vrste Laravel. Čakalne vrste Laravel lahko uporabite za različne namene, glede na vaše zahteve za prijavo. Upam, da je ta vadnica pomagala bralcem, da bolje razumejo osnovne koncepte čakalnih vrst Laravel.