Forudsætninger
Før du starter denne tutorial, skal du først udføre følgende opgaver:
- Opret et nyt Laravel-projekt
- Opret databaseforbindelsen
- Kør kommandoen migrere, opret en brugertabel
- Konfigurer konfigurationen til afsendelse af e-mails (SMTP bruges her til afsendelse af e-mails.)
Implementere standardgodkendelse
Først skal du implementere Laravels standardbrugergodkendelsessystem for at fuldføre planlægningsopgaven vist i denne vejledning. Kør følgende kommandoer fra terminalen for at implementere standard Laravel-godkendelse ved hjælp af Vue.
$ komponist kræver laravel / ui$ php håndværker ui vue -auth
Kør følgende kommando for at kompilere det nye stillads for at få det opdaterede indhold.
$ npm installation && npm run devKør følgende kommando for at rydde rutecache.
$ php håndværkerrute: klarKør følgende kommando for at starte Laravel-udviklingsserveren og kontrollere, om standardbrugergodkendelsessystemet fungerer.
$ php håndværker serverer
Åbn en hvilken som helst browser, og kør følgende URL i browseren. Hvis den Log på og Tilmeld link vises og fungerer korrekt, så er implementeringen af standardgodkendelse fuldført korrekt.
http: // localhost: 8000
Opret en mailbar klasse og håndværkskommando
Mange nye brugere opretter konti dagligt og udfører mange opgaver relateret til registrerede brugere, når projektet er online. Nogle gange skal applikationen vide, hvor mange brugere der har oprettet konti hver dag. Hvis disse oplysninger kræves regelmæssigt, er det bedre at udføre en bestemt forespørgsel efter et regelmæssigt interval. En Laravel-kommando bruges her til at få oplysningerne om de aktuelt registrerede brugere, og en mailbar klasse bruges til at sende disse oplysninger via e-mail til administratoren eller en specificeret person.
Kør følgende kommando for at oprette den mailbare klasse til afsendelse af e-mailen. Det opretter en fil med navnet SendUsersList.php på stedet app / Mail.
$ php håndværkerfabrik: mail SendUsersListÅbn filen, og rediger indholdet som i følgende kode.
navneområde App \ Mail;brug Illuminate \ Bus \ Queueable;
brug Illuminate \ Contracts \ Queue \ ShouldQueue;
brug Illuminate \ Mail \ Mailable;
brug Illuminate \ Queue \ SerializesModels;
klasse SendUsersList udvider Mailable
brug i kø, SerializesModels;
/ * Erklær en matrixvariabel * /
offentlig $ userList = array ();
/ **
* Opret en ny beskedforekomst.
*
* @ tilbagevenden ugyldig
* /
offentlig funktion __construct ($ userList)
/ * Initialiser arrayvariablen med den variabel, der sendes af
objekt oprettelse af klassen. * /
$ this-> userList = $ userList;
/ **
* Byg beskeden.
*
* @ Retur $ dette
* /
offentlig funktion build ()
/ * Diaplay visningsfilen med værdierne for arrayvariablen * /
returner $ this-> view ('registeredList') -> med ('userList', $ this-> userList);
Kør følgende kommando for at oprette den brugerdefinerede Laravel-kommando, der hedder Registrer brugerliste, som udfører forespørgslen for at få listen over registrerede brugeroplysninger i hver dag. Kommandoen opretter en fil med navnet Registrer brugerliste.php på stedet app / kommandoer.
$ php artisan make: kommando RegisterUsersList --command = registreret: brugereÅbn filen og rediger indholdet med følgende kode for at sende listen over aktuelt registrerede brugere af det aktuelle system til en bestemt e-mail-adresse.
navneområde App \ Console \ Kommandoer;brug Illuminate \ Console \ Command;
/ * Importer nødvendige pakker * /
brug Mail;
brug App \ Mail \ SendUsersList;
brug DB;
brug Carbon \ Carbon;
brug App \ Console \ Commands \ DateTime;
class RegisterUsersList udvider Command
/ **
* Navnet og signaturen på konsolkommandoen.
*
* @var streng
* /
/ * Tilføj signaturværdi * /
beskyttet $ signatur = 'registreret: brugere';
/ **
* Beskrivelse af kommandokommandoen.
*
* @var streng
* /
beskyttet $ beskrivelse = 'Liste over registrerede brugere';
/ **
* Opret en ny kommandoinstans.
*
* @ tilbagevenden ugyldig
* /
offentlig funktion __construct ()
forælder :: __ konstruere ();
/ **
* Udfør konsolkommandoen.
*
* @return int
* /
offentlig funktionshåndtag ()
/ * Læs den aktuelle systemdato * /
$ i dag = Carbon :: nu () -> toDateString ();
/ * Få listen over brugeroplysninger, der er registreret
i den aktuelle systemdato * /
$ current_registered_users =
DB :: tabel ('brugere') -> whereDate ('created_at', $ i dag) -> get () -> toArray ();
/ * Opret objektet for den mailbare klasse med arrayvariablen
der indeholder listen over aktuelt registrerede brugere * /
$ email = ny SendUsersList ($ current_registered_users);
/ * Send e-mail ved hjælp af Mail-klasse * /
Mail :: til ('modtagerens e-mail-adresse') -> send ($ email);
Opsæt tidsplanen til udførelse af kommandoen
Åbn Kerne.php fil fra placeringen app / konsol og rediger indholdet med følgende kode. Du kan indstille forskellige typer indstillinger for tidsplanfrekvens. Du kan få listen fra dette link. Her bruges timeplanen.
navneområde App \ Console;brug Illuminate \ Console \ Scheduling \ Schedule;
brug Illuminate \ Foundation \ Console \ Kernel som ConsoleKernel;
klasse Kernel udvider ConsoleKernel
/ **
* De håndværkskommandoer, der leveres af din ansøgning.
*
* @var matrix
* /
/ * Intialiser variablen $ kommandoer * /
beskyttede $ kommandoer = [
'App \ Console \ Commands \ RegisterUsersList',
];
/ **
* Definer programmets kommandoplan.
*
* @param \ Illuminate \ Console \ Scheduling \ Schedule $ tidsplan
* @ tilbagevenden ugyldig
* /
beskyttet funktionsplan (Plan $ $ plan)
/ * Indstil tidsplanen hver time * /
$ skema-> kommando ('registreret: brugere') -> hver time ();
/ **
* Registrer kommandoerne til applikationen.
*
* @ tilbagevenden ugyldig
* /
beskyttede funktionskommandoer ()
$ dette-> belastning (__ DIR__.'/ Kommandoer');
kræve base_path ('ruter / konsol.php ');
Opret visning
Opret registreret liste.klinge.php se fil med følgende kode.
@if (count ($ userList)> 0)
Listen over brugere, der er registreret i dag, er angivet nedenfor:
@foreach ($ userList som $ user)
$ bruger-> navn
@endforeach
@andet
Ingen brugere er registreret i dag endnu.
@Afslut Hvis
Kør kommandoen:
Kør følgende kommandoer for at rydde cachen.
$ php håndværkercache: ryd$ php håndværkskonfiguration: cache
Kør følgende håndværkskommando fra terminalen for at udføre den tidligere oprettede brugerdefinerede kommando og kontrollere output.
$ php håndværkerregistreret: brugereTjek modtagerens e-mail-adresse for at finde ud af output. Følgende output vises, hvis der ikke oprettes nogen bruger.
Opret en ny brugerkonto, og tjek e-mailen igen.
Konklusion
Laravel Scheduler gør gentagne opgaver lettere at udføre for applikationen. Efter at have læst denne vejledning skal læsere nu have en klar forståelse af begreberne oprettelse af brugerdefinerede kommandoer og implementering af automatiserede opgaver ved hjælp af Laravel Scheduler.