Preduvjeti
Prije početka ovog vodiča prvo izvršite sljedeće zadatke:
- Instalirajte novi projekt Laravel
- Postavite vezu s bazom podataka
- Postavljanje konfiguracije za slanje e-pošte (Vodič za slanje e-pošte možete provjeriti za slanje e-pošte putem SMTP-a)
Stvori tablicu
Morate stvoriti poslovi tablicu u bazi podataka za pohranu svih redova. Pokrenite sljedeću naredbu s terminala da biste kreirali datoteku za migraciju za poslovi stol.
$ php obrtnički red: tablicaDatoteku za migraciju možete otvoriti s mjesta baza podataka / migracije /. Datoteka sadrži sljedeći sadržaj.
koristite Illuminate \ Database \ Migrations \ Migration;koristite Illuminate \ Database \ Schema \ Blueprint;
koristite Illuminate \ Support \ Facades \ Schema;
klasa CreateJobsTable proširuje Migraciju
/ **
* Pokrenite migracije.
*
* @povratak prazan
* /
javna funkcija gore ()
Schema :: create ('jobs', function (Blueprint $ table)
$ table-> bigIncrements ('id');
$ table-> string ('queue') -> index ();
$ table-> longText ('korisni teret');
$ table-> unsignedTinyInteger ('pokušaji');
$ table-> unsignedInteger ('rezervirani_at') -> nullable ();
$ table-> unsignedInteger ('available_at');
$ table-> unsignedInteger ('created_at');
);
/ **
* Obrnuti migracije.
*
* @povratak prazan
* /
javna funkcija dolje ()
Schema :: dropIfExists ('poslovi');
Pokrenite sljedeću naredbu s terminala da biste kreirali posao stol.
$ php obrtnik migriraIzradite klasu pošte
Morate stvoriti dostupnu klasu za slanje e-pošte iz aplikacije Laravel. Izvedite sljedeću naredbu da biste kreirali klasu pošte s imenom Pošalji e-mail na mjestu aplikacija / pošta.
$ php artisan make: mail SendEmailSadržaj ove klase prikazan je u nastavku. Naziv datoteke prikaza koji se koristi u izgraditi() metoda stvorit će se u sljedećem dijelu ovog vodiča.
prostor imena App \ Mail;koristite Illuminate \ Bus \ Queueable;
koristite Illuminate \ Contracts \ Queue \ ShouldQueue;
koristite Illuminate \ Mail \ Mavable;
koristite Illuminate \ Queue \ SerializesModels;
klasa SendEmail proteže se na Dostupno
koristiti Queueable, SerializesModels;
/ **
* Stvorite novu instancu poruke.
*
* @povratak prazan
* /
javna funkcija __construct ()
//
/ **
* Izgradite poruku.
*
* @vrati $ ovo
* /
build javne funkcije ()
/ * Definirajte naziv pogleda koji će se koristiti za predložak e-pošte * /
vrati $ this-> view ('email');
Stvori pogled
Stvorite datoteku prikaza s imenom e-mail.oštrica.php sa sljedećim sadržajem koji će biti poslan kao tijelo e-pošte.
Dobrodošli u Linux Hint
Laravel naučite lako
Stvorite razred posla
Pokrenite sljedeću naredbu za stvaranje klase posla. Ime datoteke klase posla imenovano Slanje e-pošte.php stvorit će se na lokaciji aplikacija / poslovi.
$ php artisan make: job SendingEmailSadržaj Slanje e-pošte.php prikazano je dolje. Morate postaviti valjanu e-adresu unutar do() metoda ručka () funkcija za ispitivanje ispravnosti koda. Postavite valjanu adresu e-pošte umjesto 'Adresa e-pošte primatelja' unutar do() metoda za provjeru radi li red ispravno.
imenski prostor App \ Jobs;koristite Illuminate \ Bus \ Queueable;
koristite Illuminate \ Contracts \ Queue \ ShouldQueue;
koristite Illuminate \ Foundation \ Bus \ Dispatchable;
koristite Illuminate \ Queue \ InteractsWithQueue;
koristite Illuminate \ Queue \ SerializesModels;
/ * Dodani su potrebni paketi * /
koristiti Mail;
koristite App \ Mail \ SendEmail;
klasa SendingEmail implementira ShouldQueue
koristiti Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
/ **
* Stvorite novu instancu posla.
*
* @povratak prazan
* /
javna funkcija __construct ()
//
/ **
* Izvršite posao.
*
* @povratak prazan
* /
ručica javne funkcije ()
/ * Stvorite objekt dostupne klase i pošaljite e-poštu * /
$ email = novi SendEmail ();
/ * Postavite valjanu adresu e-pošte * /
Mail :: na ('Adresa e-pošte primatelja') -> pošalji ($ email);
Izradite kontroler
Izvedite sljedeću naredbu za stvaranje kontrolera za upravljanje redom. Kada handleQueue () izvršava se funkcija kontrolera, posao reda će se gurnuti i e-pošta će se poslati.
$ php artisan make: kontroler SendEmailControllerSendEmailController.php
prostor imena App \ Http \ Controllers;koristite Illuminate \ Http \ Request;
/ * Dodajte potrebne pakete * /
koristiti App \ Jobs \ SendingEmail;
koristiti Carbon \ Carbon;
klasa SendEmailController proširuje Controller
/ **
* Korištenje redova Laravel
* /
javna funkcija handleQueue ()
/ * Gurnite novi posao u red poslova * /
otprema (nova SendingEmail ());
/ * Ispis poruke nakon slanja e-pošte * /
echo 'E-pošta je poslana';
Dodaj rutu
Otvori mreža.php datoteka iz rute mapu i dodajte sljedeću rutu za izvršavanje posla u redu čekanja pomoću kontrolera.
Route :: get ('email', '[email protected]');Pokrenite sljedeći URL u pregledniku kako biste provjerili radi li kôd. Otvorite adresu e-pošte primatelja da biste provjerili je li primljena nova e-pošta.
http: // localhost: 8000 / emailqueue
Dodaj odgodu
Otvori Slanje e-pošte.php ponovno datoteku i izmijenite sadržaj datoteke handleQueue () funkcija za dodavanje kašnjenja od pet sekundi zadacima u redu.
prostor imena App \ Http \ Controllers;koristite Illuminate \ Http \ Request;
/ * Dodajte potrebne pakete * /
koristiti App \ Jobs \ SendingEmail;
koristiti Carbon \ Carbon;
klasa SendEmailController proširuje Controller
/ **
* Korištenje redova Laravel
* /
javna funkcija handleQueue ()
/ * Stvorite novi objekt u redu s odgodom od 5 sekundi * /
$ emailJob = (new SendingEmail ()) -> delay (Carbon :: now () -> addSeconds (5));
/ * Gurnite novi posao u red poslova * /
otprema ($ emailJob);
/ * Ispis poruke nakon slanja e-pošte * /
echo 'E-pošta poslana nakon pet sekundi';
Ponovno pokrenite sljedeći URL u pregledniku kako biste provjerili radi li kod. Ovdje će se e-pošta poslati nakon pet sekundi, koristeći metodu delay () od pet sekundi.
http: // localhost: 8000 / emailqueue
Provjerite pristiglu poštu adrese e-pošte primatelja da biste saznali je li nova e-pošta primljena nakon 5 sekundi. Primit će se e-pošta sa sljedećim sadržajem ako posao u redu radi ispravno.
Zaključak
Ovaj vodič prikazuje vrlo jednostavno korištenje reda Laravel. Redove Laravel možete koristiti u razne svrhe, ovisno o zahtjevima vaše prijave. Nadam se da je ovaj vodič pomogao čitateljima da bolje razumiju osnovne koncepte redova Laravel.