Előfeltételek
Az oktatóanyag megkezdése előtt hajtsa végre a következő feladatokat:
- Telepítsen egy friss Laravel-projektet
- Állítsa be az adatbázis-kapcsolatot
- Állítsa be az e-mailek küldésének konfigurációját (Ellenőrizheti az e-mail küldési útmutatót az e-mail küldéséhez az SMTP használatával)
Táblázat létrehozása
Létre kell hoznia a munkahelyek táblázat az adatbázisban az összes várólista tárolásához. A migrációs fájl létrehozásához futtassa a következő parancsot a terminálról munkahelyek asztal.
$ php kézműves sor: táblázatA migrációs fájlt a helyről nyithatja meg adatbázis / migrációk /. A fájl a következő tartalmat tartalmazza.
használja az Illuminate \ Database \ Migrations \ Migration alkalmazást;használja az Illuminate \ Database \ Schema \ Blueprint parancsot;
használja az Illuminate \ Support \ Homlokzatok \ Schema alkalmazást;
A CreateJobsTable osztály kiterjeszti az áttelepítést
/ **
* Futtassa a migrációkat.
*
* @return érvénytelen
* /
nyilvános funkció fel ()
Séma :: create ('munkahelyek', function (Blueprint $ tábla)
$ table-> bigIncrements ('id');
$ table-> string ('queue') -> index ();
$ table-> longText ('hasznos teher');
$ table-> unsignedTinyInteger ('kísérletek');
$ table-> unsignedInteger ('fenntartott_at') -> nullable ();
$ table-> unsignedInteger ('available_at');
$ table-> unsignedInteger ('létrehozott_at');
);
/ **
* Fordítsa meg az áttéréseket.
*
* @return érvénytelen
* /
nyilvános funkció le ()
Séma :: dropIfExists ('munkahelyek');
Futtassa a következő parancsot a terminálról a munka asztal.
$ php kézműves vándorolHozzon létre e-mail osztályt
Létre kell hoznia egy postázható osztályt e-mailek küldéséhez a Laravel alkalmazásból. Futtassa a következő parancsot a nevű levelezési osztály létrehozásához Küldjön e-mailt a helyszínen app / Mail.
$ php kézműves gyártmány: mail SendEmailEnnek az osztálynak a tartalma az alábbiakban látható. A nézetben használt fájlnév, amelyet a épít() módszer az oktatóanyag következő részében jön létre.
névtér App \ Mail;használja az Illuminate \ Bus \ Queueable;
használja az Illuminate \ Contracts \ Queue \ ShouldQueue parancsot;
használja az Illuminate \ Mail \ Mailable;
használja az Illuminate \ Queue \ SerializesModels alkalmazást;
class SendEmail kiterjeszti a Mailable-t
használja a Queueable, SerializesModels alkalmazást;
/ **
* Hozzon létre egy új üzenetpéldányt.
*
* @return érvénytelen
* /
nyilvános funkció __construct ()
//
/ **
* Készítsd el az üzenetet.
*
* @return $ ezt
* /
nyilvános funkció kiépítése ()
/ * Adja meg az e-mail sablonhoz használt nézet nevét * /
return $ this-> view ('email');
Nézet létrehozása
Hozzon létre nevű nézetfájlt email.penge.php a következő tartalommal, amelyet e-mail törzsként küldünk el.
Üdvözöljük a Linux Tippben
Tanuld meg könnyedén a Laravel-t
Hozzon létre egy Munkaosztályt
Futtassa a következő parancsot egy jobosztály létrehozásához. A munkaosztály fájlneve megnevezve E-mail küldése.php a helyszínen jön létre alkalmazás / munkák.
$ php kézműves gyártmány: job SendingEmailA tartalom E-mail küldése.php alább látható. Meg kell adnia egy érvényes e-mail címet a nak nek() módszere fogantyú() funkcióval tesztelheti, hogy a kód megfelelően működik-e. Állítsa be az érvényes e-mail címet a 'Fogadó e-mail címe' benne nak nek() módszer annak ellenőrzésére, hogy a sor megfelelően működik-e.
névtér App \ Jobs;használja az Illuminate \ Bus \ Queueable;
használja az Illuminate \ Contracts \ Queue \ ShouldQueue parancsot;
használja az Illuminate \ Foundation \ Bus \ Dispatchable;
használja az Illuminate \ Queue \ InteractsWithQueue parancsot;
használja az Illuminate \ Queue \ SerializesModels alkalmazást;
/ * Hozzáadta a szükséges csomagokat * /
használja a Mail-t;
használja az App \ Mail \ SendEmail alkalmazást;
class SendingEmail implementálja a ShouldQueue-t
használja a Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
/ **
* Hozzon létre egy új munkapéldányt.
*
* @return érvénytelen
* /
nyilvános funkció __construct ()
//
/ **
* Végezze el a munkát.
*
* @return érvénytelen
* /
nyilvános funkció fogantyú ()
/ * Hozzon létre egy postázható osztály objektumot és küldjön e-mailt * /
$ email = new SendEmail ();
/ * Adjon meg érvényes e-mail címet * /
Levelezés :: címre ('Vevő e-mail címe') -> küldés ($ e-mail);
Vezérlő létrehozása
Futtassa a következő parancsot egy vezérlő létrehozásához a sor kezelésére. Amikor az handleQueue () A vezérlő funkciója végrehajtásra kerül, a várakozási feladat meg lesz tolva, és az e-mail elküldődik.
$ php kézműves gyártmány: vezérlő SendEmailControllerSendEmailController.php
névtér App \ Http \ Controllers;használja az Illuminate \ Http \ Request parancsot;
/ * Adja hozzá a szükséges csomagokat * /
használja az App \ Jobs \ SendingEmail alkalmazást;
használja Carbon \ Carbon;
osztály a SendEmailController kiterjeszti a Vezérlőt
/ **
* A Laravel Queues használata
* /
public function handleQueue ()
/ * Tolja az új munkát a jobsorba * /
feladás (új SendingEmail ());
/ * Üzenet nyomtatása e-mail küldés után * /
echo 'Az e-mailt elküldtük';
Útvonal hozzáadása
Nyissa meg a web.php fájl a útvonalak mappát, és adja hozzá a következő útvonalat a sormunka végrehajtásához a vezérlő segítségével.
Route :: get ('email', '[email protected]');Futtassa a következő URL-t a böngészőben annak ellenőrzéséhez, hogy a kód működik-e. Nyissa meg a vevő e-mail címét, és ellenőrizze, hogy érkezett-e új e-mail.
http: // localhost: 8000 / emailqueue
Add Delay
Nyissa meg a E-mail küldése.php fájl újra, és módosítsa a handleQueue () funkcióval hozzáadhatja az öt másodperces késleltetést a várólista feladatokhoz.
névtér App \ Http \ Controllers;használja az Illuminate \ Http \ Request parancsot;
/ * Adja hozzá a szükséges csomagokat * /
használja az App \ Jobs \ SendingEmail alkalmazást;
használja Carbon \ Carbon;
osztály a SendEmailController kiterjeszti a Vezérlőt
/ **
* A Laravel Queues használata
* /
public function handleQueue ()
/ * Új sorobjektum létrehozása 5 másodperces késéssel * /
$ emailJob = (új SendingEmail ()) -> delay (Carbon :: now () -> addSeconds (5));
/ * Tolja az új munkát a jobsorba * /
feladás ($ emailJob);
/ * Üzenet nyomtatása e-mail küldés után * /
echo 'E-mail elküldve öt másodperc múlva';
Ismét futtassa a következő URL-t a böngészőben, hogy ellenőrizze, működik-e a kód. Itt az e-mailt öt másodperc elteltével küldjük el, a delay () öt másodperces módszerrel.
http: // localhost: 8000 / emailqueue
Ellenőrizze a vevő e-mail címének postaládáját, hogy megtudja, új üzenet érkezett-e 5 másodperc múlva. A következő tartalmú e-mailt kapunk, ha a várakozási feladat megfelelően működik.
Következtetés
Ez az oktatóanyag a Laravel-sor nagyon egyszerű használatát mutatja be. A Laravel várólistákat különféle célokra használhatja, az alkalmazás követelményeinek megfelelően. Remélem, hogy ez a bemutató segített az olvasóknak jobban megérteni a Laravel-sorok alapfogalmait.