Condiții prealabile
Înainte de a începe acest tutorial, mai întâi, finalizați următoarele sarcini:
- Instalați un nou proiect Laravel
- Configurați conexiunea la baza de date
- Configurați configurația pentru trimiterea e-mailurilor (Puteți verifica tutorialul pentru trimiterea e-mailurilor pentru a trimite e-mailuri utilizând SMTP)
Creați tabel
Trebuie să creați locuri de munca tabel în baza de date pentru a stoca toate cozile. Rulați următoarea comandă de la terminal pentru a crea fișierul de migrare pentru locuri de munca masa.
$ php artisan coada: tabelPuteți deschide fișierul de migrare din locație baza de date / migrații /. Fișierul conține următorul conținut.
utilizați Illuminate \ Database \ Migrations \ Migration;utilizați Illuminate \ Database \ Schema \ Blueprint;
utilizați Illuminate \ Support \ Facades \ Schema;
clasa CreateJobsTable extinde migrarea
/ **
* Rulați migrațiile.
*
* @return nul
* /
funcție publică sus ()
Schema :: create („joburi”, funcție (Blueprint $ tabel)
$ table-> bigIncrements ('id');
$ tabel-> șir ('coadă') -> index ();
$ table-> longText ('sarcină utilă');
$ tabel-> unsignedTinyInteger („încercări”);
$ tabel-> unsignedInteger ('rezervat_at') -> nul ();
$ table-> unsignedInteger ('available_at');
$ table-> unsignedInteger ('created_at');
);
/ **
* Inversați migrațiile.
*
* @return nul
* /
funcție publică jos ()
Schema :: dropIfExists ('joburi');
Rulați următoarea comandă de la terminal pentru a crea fișierul loc de munca masa.
$ php artisan migreazăCreați o clasă de e-mail
Trebuie să creați o clasă care poate fi trimisă prin e-mail pentru a trimite e-mailuri din aplicația Laravel. Rulați următoarea comandă pentru a crea clasa de poștă numită Trimite email în locație aplicație / Mail.
$ php artisan make: mail SendEmailConținutul acestei clase este prezentat mai jos. Numele fișierului de vizualizare care este utilizat în construi() metoda va fi creată în următoarea parte a acestui tutorial.
spațiu de nume App \ Mail;utilizați Iluminare \ Autobuz \ Queueable;
utilizați Iluminați \ Contracte \ Coadă \ Ar trebui să faceți coadă;
utilizați Iluminează \ Mail \ Mailable;
utilizați Iluminează \ Coadă \ SerializeazăModele;
clasa SendEmail extinde Mailable
utilizați Queueable, SerializesModels;
/ **
* Creați o nouă instanță de mesaj.
*
* @return nul
* /
funcție publică __construct ()
//
/ **
* Construiți mesajul.
*
* @return $ this
* /
funcție publică build ()
/ * Definiți numele vizualizării care va fi utilizat pentru șablonul de e-mail * /
returnează $ this-> view ('e-mail');
Creați vizualizare
Creați fișierul de vizualizare numit e-mail.lamă.php cu următorul conținut care va fi trimis ca corp de e-mail.
Bine ați venit la Linux Hint
Aflați Laravel cu ușurință
Creați o clasă de locuri de muncă
Rulați următoarea comandă pentru a crea o clasă de job. Numele fișierului clasei de locuri de muncă numit Trimiterea de e-mail.php va fi creat în locație aplicație / Locuri de muncă.
$ php artisan make: job SendingEmailConținutul Trimiterea de e-mail.php este prezentat mai jos. Trebuie să setați o adresă de e-mail validă în interiorul la() metoda mâner() funcție pentru a testa dacă codul funcționează corect. Setați adresa de e-mail validă în locul „Adresa de e-mail a destinatarului” în interiorul la() metodă pentru a verifica dacă coada funcționează corect.
spațiu de nume App \ Jobs;utilizați Iluminare \ Autobuz \ Queueable;
utilizați Iluminați \ Contracte \ Coadă \ Ar trebui să faceți coadă;
utilizați Illuminate \ Foundation \ Bus \ Dispatchable;
utilizați Iluminare \ Coadă \ InteractsWithQueue;
utilizați Iluminează \ Coadă \ SerializeazăModele;
/ * Am adăugat pachetele necesare * /
folosiți Mail;
utilizați App \ Mail \ SendEmail;
clasa SendingEmail implementează ShouldQueue
utilizați Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
/ **
* Creați o nouă instanță de job.
*
* @return nul
* /
funcție publică __construct ()
//
/ **
* Executați jobul.
*
* @return nul
* /
handle funcție publică ()
/ * Creați obiectul clasei care poate fi trimisă și trimiteți e-mail * /
$ email = new SendEmail ();
/ * Setați o adresă de e-mail validă * /
Mail :: to ('Destinatar Email Address') -> send ($ email);
Creați controler
Rulați următoarea comandă pentru a crea un controler care să gestioneze coada. Cand handleQueue () funcția controlerului este executată, operația de coadă va fi împinsă și e-mailul va fi trimis.
$ php artisan make: controller SendEmailControllerSendEmailController.php
spațiu de nume App \ Http \ Controllers;utilizați Iluminare \ Http \ Request;
/ * Adăugați pachetele necesare * /
folosiți aplicația \ Jobs \ SendingEmail;
utilizați Carbon \ Carbon;
clasa SendEmailController extinde Controller
/ **
* Utilizarea cozilor Laravel
* /
handle funcție publicăQueue ()
/ * Împingeți noua lucrare în coada de lucrări * /
expediere (nou SendingEmail ());
/ * Imprimați mesajul după trimiterea e-mailului * /
ecou „E-mailul a fost trimis”;
Adăugați ruta
Deschide web.php fișier din rute folder și adăugați următoarea rută pentru a executa opera de coadă utilizând controlerul.
Route :: get ('e-mail', '[e-mail protejat]');Rulați următoarea adresă URL în browser pentru a verifica dacă codul funcționează. Deschideți adresa de e-mail a destinatarului pentru a verifica dacă a fost primit un e-mail nou.
http: // localhost: 8000 / emailqueue
Adăugați întârziere
Deschide Trimiterea de e-mail.php fișier din nou și modificați conținutul fișierului handleQueue () funcție pentru a adăuga întârzierea de cinci secunde la lucrările de coadă.
spațiu de nume App \ Http \ Controllers;utilizați Iluminare \ Http \ Request;
/ * Adăugați pachetele necesare * /
folosiți aplicația \ Jobs \ SendingEmail;
utilizați Carbon \ Carbon;
clasa SendEmailController extinde Controller
/ **
* Utilizarea cozilor Laravel
* /
handle funcție publicăQueue ()
/ * Creați un nou obiect de coadă cu o întârziere de 5 secunde * /
$ emailJob = (new SendingEmail ()) -> delay (Carbon :: now () -> addSeconds (5));
/ * Împingeți noua lucrare în coada de lucrări * /
expediere ($ emailJob);
/ * Imprimați mesajul după trimiterea e-mailului * /
ecou „E-mail trimis după cinci secunde”;
Din nou, rulați următoarea adresă URL în browser pentru a verifica dacă codul funcționează. Aici, e-mailul va fi trimis după cinci secunde, folosind metoda delay () de cinci secunde.
http: // localhost: 8000 / emailqueue
Verificați căsuța de e-mail a adresei de e-mail a destinatarului pentru a afla dacă a fost primit un e-mail nou după 5 secunde. Un e-mail cu următorul conținut va fi primit dacă lucrarea la coadă funcționează corect.
Concluzie
Acest tutorial arată utilizarea foarte simplă a cozii Laravel. Puteți utiliza cozile Laravel în diferite scopuri, pe baza cerințelor aplicației dvs. Sper că acest tutorial a ajutat cititorii să înțeleagă mai bine conceptele de bază ale cozilor Laravel.