Būtinos sąlygos
Prieš pradėdami šią mokymo programą, pirmiausia atlikite šias užduotis:
- Įdiekite naują „Laravel“ projektą
- Nustatykite duomenų bazės ryšį
- Nustatykite el. Laiškų siuntimo konfigūraciją (galite patikrinti el. Pašto siuntimo instrukciją, jei norite siųsti el. Laiškus naudodami SMTP)
Sukurti lentelę
Turite sukurti darbo vietų lentelę duomenų bazėje, kad būtų išsaugotos visos eilės. Paleiskite šią komandą iš terminalo, kad sukurtumėte darbo vietų stalo.
$ php amatininkų eilė: lentelėPerkėlimo failą galite atidaryti iš vietos duomenų bazė / migracijos /. Faile yra toks turinys.
naudokite „Illuminate \ Database \ Migrations \ Migration“;naudokite „Illuminate \ Database \ Schema \ Blueprint“;
naudokite „Illuminate \ Support \ Facades \ Schema“;
klasė „CreateJobsTable“ pratęsia perkėlimą
/ **
* Paleiskite migracijas.
*
* @return negalioja
* /
viešoji funkcija aukštyn ()
Schema :: create ('Job', function (Blueprint $ table)
$ table-> bigIncrements ('id');
$ table-> string ('queue') -> index ();
$ table-> longText ('naudingoji apkrova');
$ table-> unsignedTinyInteger ('bandymai');
$ table-> unsignedInteger ('reserve_at') -> niekinis ();
$ table-> unsignedInteger ('available_at');
$ table-> unsignedInteger ('sukurtas_at');
);
/ **
* Apverskite migracijas.
*
* @return negalioja
* /
viešoji funkcija žemyn ()
Schema :: dropIfExists ('darbai');
Norėdami sukurti, paleiskite šią komandą iš terminalo darbas stalo.
$ php amatininkai migruojaSukurti pašto klasę
Norėdami išsiųsti el. Laiškus iš „Laravel“ programos, turite sukurti el. Pašto klasę. Paleiskite šią komandą, kad sukurtumėte pavadintą pašto klasę Siųsti laišką vietoje programa / paštas.
$ php amatininko gaminys: paštas SendEmailŠios klasės turinys parodytas žemiau. Peržiūros failo pavadinimas, naudojamas statyti () metodas bus sukurtas kitoje šios pamokos dalyje.
vardų sritis App \ Mail;naudokite „Illuminate \ Bus \ Queueable“;
naudokite „Illuminate \ Contracts \ Queue“ „ShouldQueue“;
naudokite „Illuminate \ Mail \ Mailable“;
naudoti „Illuminate \ Queue \ SerializesModels“;
klasės „SendEmail“ prailgina „Mailable“
naudoti „Queueable“, „SerializesModels“;
/ **
* Sukurkite naują pranešimo egzempliorių.
*
* @return negalioja
* /
viešoji funkcija __construct ()
//
/ **
* Sukurkite pranešimą.
*
* @return $ tai
* /
viešosios funkcijos kūrimas ()
/ * Apibrėžkite rodinio pavadinimą, kuris bus naudojamas el. Pašto šablonui * /
grąžinti $ this-> rodinį ('email');
Sukurti rodinį
Sukurkite rodinio failą pavadinimu paštu.ašmenys.php turinį, kuris bus išsiųstas kaip el. pašto turinys.
Sveiki atvykę į „Linux“ patarimą
Sužinok Laravel lengvai
Sukurkite darbo klasę
Norėdami sukurti darbo klasę, vykdykite šią komandą. Pavadintas darbo klasės failo pavadinimas Siunčiamas el. Paštas.php bus sukurta toje vietoje programa / darbai.
$ php amatininko gaminys: darbas siunčiamas elProgramos turinys Siunčiamas el. Paštas.php yra parodyta žemiau. Programoje turite nustatyti galiojantį el. Pašto adresą iki () metodas rankena () funkcija patikrinti, ar kodas veikia tinkamai. Vietoje. Nustatykite galiojantį el. Pašto adresą „Gavėjo el. Pašto adresas“ viduje iki () metodas patikrinti, ar eilė veikia tinkamai.
vardų srities programa \ Jobs;naudokite „Illuminate \ Bus \ Queueable“;
naudokite „Illuminate \ Contracts \ Queue“ „ShouldQueue“;
naudoti „Illuminate \ Foundation \ Bus \ Dispatchable“;
naudokite „Illuminate \ Queue \ InteractsWithQueue“;
naudoti „Illuminate \ Queue \ SerializesModels“;
/ * Pridėjo reikiamus paketus * /
naudoti paštą;
naudoti „App \ Mail \ SendEmail“;
klasės „SendingEmail“ įgyvendina „ShouldQueue“
naudoti „Dispatchable“, „InteractsWithQueue“, „Queueable“, „SerializesModels“;
/ **
* Sukurkite naują darbo egzempliorių.
*
* @return negalioja
* /
viešoji funkcija __construct ()
//
/ **
* Atlikite darbą.
*
* @return negalioja
* /
viešosios funkcijos rankena ()
/ * Sukurkite pašto klasės objektą ir siųskite el. Laišką * /
$ email = new SendEmail ();
/ * Nustatykite galiojantį el. Pašto adresą * /
Mail :: to ('Receiver Email Address') -> siųsti ($ email);
Sukurti valdiklį
Paleiskite šią komandą, kad sukurtumėte valdiklį, tvarkantį eilę. Kai rankena eilė () vykdoma valdiklio funkcija, eilės darbas bus perduotas ir el. laiškas bus išsiųstas.
$ php amatininko gamintojas: valdiklis SendEmailController„SendEmailController“.php
vardų srities programa \ Http \ valdikliai;naudoti Illuminate \ Http \ Request;
/ * Pridėkite reikiamus paketus * /
naudoti „App \ Jobs \ SendingEmail“;
naudoti anglies \ anglies;
klasės „SendEmailController“ išplečia valdiklį
/ **
* Naudojant „Laravel“ eiles
* /
viešosios funkcijos „handQueue“ ()
/ * Įdėkite naują darbą į darbo eilę * /
išsiuntimas (naujas „SendingEmail“);
/ * Spausdinti pranešimą išsiunčiant el. Laišką * /
aidas „El. paštas išsiųstas“;
Pridėti maršrutą
Atidaryk internetas.php failą iš maršrutais aplanką ir pridėkite šį maršrutą, kad vykdytumėte eilės užduotį naudodami valdiklį.
Route :: get ('email', '[email protected]');Paleiskite šį URL naršyklėje, kad patikrintumėte, ar kodas veikia. Atidarykite imtuvo el. Pašto adresą, kad patikrintumėte, ar gautas naujas el. Laiškas.
http: // localhost: 8000 / emailqueue
Pridėti vėlavimą
Atidaryk Siunčiamas el. Paštas.php dar kartą failą ir modifikuokite rankena eilė () funkcija pridėti penkių sekundžių vėlavimą prie eilės darbų.
vardų srities programa \ Http \ valdikliai;naudoti Illuminate \ Http \ Request;
/ * Pridėkite reikiamus paketus * /
naudoti „App \ Jobs \ SendingEmail“;
naudoti anglies \ anglies;
klasės „SendEmailController“ išplečia valdiklį
/ **
* Naudojant „Laravel“ eiles
* /
viešosios funkcijos rankena eilė ()
/ * Sukurkite naują eilės objektą su 5 sekundžių vėlavimu * /
$ emailJob = (naujas SendingEmail ()) -> delsa (anglis :: now () -> addSeconds (5));
/ * Įdėkite naują darbą į darbo eilę * /
išsiuntimas ($ emailJob);
/ * Spausdinti pranešimą išsiunčiant el. Laišką * /
aidas „El. paštas išsiųstas po penkių sekundžių“;
Vėlgi paleiskite šį URL naršyklėje, kad patikrintumėte, ar kodas veikia. Čia el. Laiškas bus išsiųstas po penkių sekundžių, naudojant „delay“ (penkių sekundžių) metodą.
http: // localhost: 8000 / emailqueue
Patikrinkite gavėjo el. Pašto dėžutę, kad sužinotumėte, ar po 5 sekundžių buvo gautas naujas el. Laiškas. Jei eilės darbas veikia tinkamai, bus gautas el. Laiškas su tokiu turiniu.
Išvada
Ši pamoka parodo labai paprastą „Laravel“ eilės naudojimą. „Laravel“ eiles galite naudoti įvairiems tikslams, atsižvelgdami į savo programos reikalavimus. Tikiuosi, kad ši pamoka padėjo skaitytojams geriau suprasti pagrindines „Laravel“ eilių sąvokas.