Előfeltételek
Az oktatóanyag megkezdése előtt hajtsa végre a következő feladatokat:
- Hozzon létre egy új Laravel-projektet
- Állítsa be az adatbázis-kapcsolatot
- Futtassa a migrate parancsot, hozzon létre egy felhasználói táblát
- Állítsa be az e-mail küldés konfigurációját (itt SMTP-t használ az e-mailek küldéséhez.)
Végezze el az alapértelmezett hitelesítést
Először hajtsa végre a Laravel alapértelmezett felhasználói hitelesítési rendszerét az ebben az oktatóanyagban bemutatott ütemezési feladat elvégzéséhez. Futtassa a következő parancsokat a terminálról az alapértelmezett Laravel hitelesítés megvalósításához a Vue használatával.
$ zeneszerző igényel laravel / ui$ php kézműves ui vue -auth
Futtassa a következő parancsot a friss állványok fordításához a frissített tartalom megszerzéséhez.
$ npm install && npm run devFuttassa a következő parancsot az útvonal gyorsítótárának törléséhez.
$ php kézműves útvonal: tisztaFuttassa a következő parancsot a Laravel fejlesztőkiszolgáló elindításához, és ellenőrizze, hogy az alapértelmezett felhasználói hitelesítési rendszer működik-e.
$ php kézműves szolgál
Nyisson meg bármelyik böngészőt, és futtassa a következő URL-t a böngészőben. Ha a Belépés és Regisztráció link megjelenik és megfelelően működik, akkor az alapértelmezett hitelesítés megvalósítása megfelelően befejeződött.
http: // localhost: 8000
Hozzon létre egy postázható osztályt és kézműves parancsot
Sok új felhasználó naponta hoz létre fiókot, és számos feladatot hajt végre a regisztrált felhasználókkal kapcsolatban, amikor a projekt online. Néha az alkalmazásnak tudnia kell, hogy hány felhasználó hozott létre fiókot naponta. Ha ezekre az információkra rendszeresen szükség van, akkor jobb, ha egy adott lekérdezést rendszeres időközönként hajtunk végre. Itt egy Laravel parancsot használnak az aktuálisan regisztrált felhasználók információinak megszerzéséhez, és egy postázható osztályt használ az információk e-mailben történő elküldéséhez az adminisztrátornak vagy egy meghatározott személynek.
Futtassa a következő parancsot az e-mail küldéséhez szükséges levelezõ osztály létrehozásához. Létrehoz egy nevű fájlt SendUsersList.php a helyszínen app / Mail.
$ php kézműves gyártmány: mail SendUsersListNyissa meg a fájlt, és módosítsa a tartalmat, a következő kód szerint.
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;
A SendUsersList osztály kiterjeszti a Mailable-t
használja a Queueable, SerializesModels alkalmazást;
Tömbváltozó deklarálása * /
public $ userList = tömb ();
/ **
* Hozzon létre egy új üzenetpéldányt.
*
* @return érvénytelen
* /
nyilvános funkció __construct ($ userList)
/ * Inicializálja a tömb változót a
osztály objektum létrehozása. * /
$ this-> userList = $ userList;
/ **
* Készítsd el az üzenetet.
*
* @return $ ezt
* /
nyilvános funkció kiépítése ()
/ * Diavetítse a nézetfájlt a tömb változó értékeivel * /
return $ this-> view ('registerList') -> with ('userList', $ this-> userList);
Futtassa a következő parancsot az egyedi Laravel nevű parancs létrehozásához RegisterUsersList, amely végrehajtja a lekérdezést, hogy minden nap megkapja a regisztrált felhasználói információk listáját. A parancs létrehoz egy nevű fájlt RegisterUsersList.php a helyszínen alkalmazás / parancsok.
$ php kézműves make: parancs RegisterUsersList --command = regisztrált: felhasználókNyissa meg a fájlt, és módosítsa a tartalmat az alábbi kóddal, hogy az aktuális rendszer jelenleg regisztrált felhasználói listáját egy adott e-mail címre küldje el.
névtér App \ Console \ Parancsok;használja az Illuminate \ Console \ Command parancsot;
/ * Importálja a szükséges csomagokat * /
használja a Mail-t;
használja az App \ Mail \ SendUsersList;
használja a DB-t;
használja Carbon \ Carbon;
használja az App \ Console \ Commands \ DateTime parancsot;
class RegisterUsersList kiterjeszti a Parancsot
/ **
* A konzolparancs neve és aláírása.
*
* @var karakterlánc
* /
/ * Aláírásérték hozzáadása * /
védett $ aláírás = 'regisztrált: felhasználók';
/ **
* A konzol parancs leírása.
*
* @var karakterlánc
* /
protected $ description = 'Regisztrált felhasználók listája';
/ **
* Hozzon létre egy új parancspéldányt.
*
* @return érvénytelen
* /
nyilvános funkció __construct ()
szülő :: __ konstrukció ();
/ **
* Hajtsa végre a konzol parancsot.
*
* @return int
* /
nyilvános funkció fogantyú ()
/ * Olvassa el az aktuális rendszer dátumát * /
$ today = Carbon :: now () -> toDateString ();
/ * Szerezd meg a regisztrált felhasználói információk listáját
az aktuális rendszer dátumában * /
$ current_registered_users =
DB :: table ('users') -> whereDate ('created_at', $ today) -> get () -> toArray ();
/ * Hozza létre a postázható osztály objektumát a tömb változóval
amely tartalmazza a jelenleg regisztrált felhasználók listáját * /
$ email = new SendUsersList ($ current_registered_users);
/ * E-mail küldése a Mail osztály használatával * /
Mail :: to ('fogadó e-mail cím') -> send ($ email);
Állítsa be az ütemezést a parancs végrehajtásához
Nyissa meg a Kernel.php fájlt a helyről alkalmazás / konzol és módosítsa a tartalmat a következő kóddal. Különböző típusú ütemezési gyakorisági beállításokat állíthat be. A listát erről a linkről szerezheti be. Itt az óránkénti menetrendet alkalmazzák.
névtér App \ Console;használja az Illuminate \ Console \ Scheduling \ Schedule parancsot;
használja az Illuminate \ Foundation \ Console \ Kernelt ConsoleKernel néven;
osztályú Kernel kiterjeszti a ConsoleKernelt
/ **
* Az alkalmazás által biztosított kézműves parancsok.
*
* @var tömb
* /
/ * Intializálja a $ commands változót * /
védett $ parancsok = [
'App \ Console \ Commands \ RegisterUsersList',
];
/ **
* Adja meg az alkalmazás parancsütemezését.
*
* @param \ Illuminate \ Console \ Scheduling \ Schedule $ ütemezés
* @return érvénytelen
* /
védett funkció ütemezés ($ ütemezés ütemezése)
/ * Óránkénti ütemezés beállítása * /
$ ütemezés-> parancs ('regisztrált: felhasználók') -> óránként ();
/ **
* Regisztrálja az alkalmazás parancsait.
*
* @return érvénytelen
* /
védett funkcióparancsok ()
$ this-> load (__ DIR__.'/ Parancsok');
igényel base_path ('útvonalak / konzol.php ');
Nézet létrehozása
Hozza létre a registerList.penge.php fájl megtekintése a következő kóddal.
@if (count ($ userList)> 0)
A ma regisztrált felhasználók listája az alábbiakban található:
@foreach ($ userList mint $ user)
$ felhasználó-> név
@endforeach
@más
Ma még nem regisztráltak felhasználókat.
@endif
Futtassa a parancsot:
Futtassa a következő parancsokat a gyorsítótár törléséhez.
$ php kézműves gyorsítótár: tiszta$ php kézműves config: cache
Futtassa a következő kézműves parancsot a terminálról a korábban létrehozott egyedi parancs végrehajtásához és a kimenet ellenőrzéséhez.
$ php kézműves regisztrált: felhasználókEllenőrizze a vevő e-mail címét, hogy megtudja a kimenetet. A következő kimenet jelenik meg, ha nem jön létre felhasználó.
Hozzon létre egy új felhasználói fiókot, és ellenőrizze újra az e-mailt.
Következtetés
A Laravel Scheduler megkönnyíti az ismétlődő feladatok végrehajtását az alkalmazás számára. Az oktatóanyag elolvasása után az olvasóknak most már egyértelműen meg kell érteniük az egyéni parancsok létrehozásának és az automatizált feladatok végrehajtásának Laravel Scheduler használatával kapcsolatos fogalmait.