Laravel Scheduler Tutorial

Laravel Scheduler Tutorial
Noen oppgaver er pålagt å utføre regelmessig i en hvilken som helst applikasjon, og det vil være mer effektivt hvis oppgavene kunne gjøres automatisk. Laravel -rammeverket gjør disse typer oppgaver enklere ved å bruke Laravel Scheduler. Å sende tilbudsrelaterte bulk-e-postmeldinger, optimalisere data, generere rapporter, holde sikkerhetskopiering av applikasjoner og fjerne inaktive brukere er noen vanlige eksempler på de repeterende oppgavene som kan utføres med Laravel-planleggeren. Laravel kan utføre spesifikke oppgaver med jevne mellomrom ved å bruke en innebygd oppgaveleder som heter Korn jobb. Konfigurasjonsfilen som heter Corntab brukes av Korn For å administrere planleggingsoppgaver. Denne opplæringen viser deg hvordan du kan administrere repeterende oppgaver ved å lage Korn Jobber og utføre oppgaveplanlegging.

Forutsetninger

Før du begynner på denne opplæringen, fullfør først følgende oppgaver:

  1. Lag et nytt Laravel -prosjekt
  2. Sett opp databasetilkoblingen
  3. Kjør migrate -kommandoen Opprett en brukertabell
  4. Sett opp konfigurasjonen for å sende e -post (SMTP brukes her for å sende e -post.)

Implementere standardgodkjenning

Implementer først standard brukergodkjenningssystem for Laravel for å fullføre planleggingsoppgaven som vises i denne opplæringen. Kjør følgende kommandoer fra terminalen for å implementere standard Laravel -godkjenning ved hjelp av Vue.

$ komponist krever laravel/ui
$ php Artisan UI Vue -Auth

Kjør følgende kommando for å kompilere det ferske stillaset for å få det oppdaterte innholdet.

$ npm install && npm run Dev

Kjør følgende kommando for å fjerne rutebufferen.

$ PHP Artisan Route: Clear

Kjør følgende kommando for å starte Laravel Development Server og sjekk om standard brukergodkjenningssystem fungerer.

$ PHP Artisan server

Åpne hvilken som helst nettleser og kjør følgende URL i nettleseren. Hvis Logg Inn og registrere Link vises og fungerer ordentlig, da er implementeringen av standardgodkjenningen fullført riktig.

http: // localhost: 8000

Opprett en e -postklasse og håndverkerkommando

Mange nye brukere vil opprette kontoer daglig og vil utføre mange oppgaver relatert til registrerte brukere når prosjektet er online. Noen ganger må applikasjonen vite hvor mange brukere som har opprettet kontoer hver dag. Hvis denne informasjonen kreves regelmessig, er det bedre å utføre en bestemt spørring etter et regelmessig intervall. En Laravel -kommando brukes her for å få informasjonen til de for øyeblikket registrerte brukerne, og en utsatt klasse brukes til å sende den informasjonen via e -post til administratoren eller en spesifisert person.

Kjør følgende kommando for å opprette den sendbare klassen for å sende e -posten. Den vil lage en fil som heter SendUserSlist.PHP på stedet app/mail.

$ PHP Artisan Make: Mail sendUserSlist

Åpne filen og endre innholdet, som i følgende kode.

namespace app \ mail;
Bruk Illuminate \ Bus \ Queueable;
Bruk Illuminate \ Contracts \ Queue \ Shouldqueue;
Bruk Illuminate \ Mail \ Sendelig;
Bruk Illuminate \ Queue \ SerializesModels;
Klasse SendUserSlist utvider sendbar

Bruk queueable, serialisesmodeller;
/ * Erklære en matrisevariabel */
public $ userList = array ();
/**
* Opprett en ny meldingsforekomst.
*
* @return void
*/
offentlig funksjon __construct ($ brukerliste)

/* Initialiser matrisvariabelen med variabelen som er gitt av
objektoppretting av klassen. */
$ this-> userList = $ brukerliste;

/**
* Bygg meldingen.
*
* @return $ dette
*/
offentlig funksjonsbygging ()

/ * Diaplay visningsfilen med verdiene til matrisvariabelen */
Returner $ this-> visning ('RegistrenedList')-> med ('brukerliste', $ this-> userList);

Kjør følgende kommando for å opprette den tilpassede Laravel -kommandoen som heter RegisterUserSlist, som vil utføre spørringen for å få listen over registrerte brukere informasjon i hver dag. Kommandoen vil opprette en fil som heter RegisterUserSlist.PHP på stedet app/kommandoer.

$ PHP Artisan Make: Command RegisterUserSlist - -Command = Registrert: Brukere

Åpne filen og endre innholdet med følgende kode for å sende listen over for øyeblikket registrerte brukere av det nåværende systemet til en bestemt e -postadresse.

namespace app \ konsoll \ kommandoer;
Bruk Illuminate \ Console \ Command;
/ * Importer nødvendige pakker */
Bruk e -post;
Bruk app \ Mail \ SendUserSlist;
Bruk DB;
Bruk karbon \ karbon;
Bruk app \ Console \ Commands \ DateTime;
Klasse RegisterUserSlist utvider kommandoen

/**
* Navnet og signaturen til konsollkommandoen.
*
* @var streng
*/
/ * Legg til signaturverdi */
beskyttet $ signatur = 'registrert: brukere';
/**
* Konsollkommandobeskrivelsen.
*
* @var streng
*/
beskyttet $ beskrivelse = 'liste over registrerte brukere';
/**
* Opprett en ny kommandoinstans.
*
* @return void
*/
offentlig funksjon __konstruksjon ()

foreldre :: __ konstruksjon ();

/**
* Utfør konsollkommandoen.
*
* @return int
*/
offentlig funksjonshåndtak ()

/ * Les gjeldende systemdato */
$ i dag = karbon :: nå ()-> TODATESTRING ();
/* Få listen over brukere informasjon som er registrert
i gjeldende systemdato */
$ current_registered_users =
Db :: tabell ('brukere')-> whereDate ('create_at', $ i dag)-> get ()-> toarray ();
/* Opprett objektet med den sendbare klassen med matrisevariabelen
som inneholder den for øyeblikket registrerte brukerlisten */
$ e -post = ny SendUserSlist ($ current_registered_users);
/ * Send e -post ved hjelp av e -postklasse */
Mail :: til ('mottaker e-postadresse')-> send ($ e-post);

Sett opp timeplanen for å utføre kommandoen

Åpne Kjerne.PHP fil fra stedet App/konsoll og endre innholdet med følgende kode. Du kan angi forskjellige typer planfrekvensalternativer. Du kan få listen fra denne lenken. Her brukes timeplanen.

namespace -app \ konsoll;
Bruk Illuminate \ Console \ Planlegging \ plan;
Bruk Illuminate \ Foundation \ Console \ Kernel som konsolekernel;
Klassekjerne utvider Consoleekernel

/**
* Artisan -kommandoene levert av søknaden din.
*
* @var -matrise
*/
/ * Intialiser $ Kommando -variabelen */
beskyttede $ kommandoer = [
'App \ Console \ Commands \ RegisterUsersList',
];
/**
* Definer applikasjonens kommandoplan.
*
* @Param \ Illuminate \ Console \ Planlegging \ Plan $ Schedule
* @return void
*/
beskyttet funksjonsplan (plan $ plan)

/ * Sett timeplanen time */
$ plan-> kommando ('registrert: brukere')-> timely ();

/**
* Registrer kommandoene for søknaden.
*
* @return void
*/
beskyttede funksjonskommandoer ()

$ this-> last (__ dir__.'/Kommandoer');
krever base_path ('ruter/konsoll.php ');

Lag visning

Opprett Registrert liste.blad.PHP Vis fil med følgende kode.


@if (Count ($ brukerliste)> 0)

Listen over brukere som er registrert i dag er gitt nedenfor:


@foreach ($ brukerliste som $ bruker)
$ user-> name

@endforeach
@ellers
Ingen bruker er registrert i dag ennå.
@slutt om

Kjør kommandoen:

Kjør følgende kommandoer for å tømme hurtigbufferen.

$ PHP Artisan Cache: Clear
$ PHP Artisan Config: Cache

Kjør følgende Artisan -kommando fra terminalen for å utføre den tidligere opprettet tilpassede kommandoen og sjekk utgangen.

$ PHP Artisan Registrert: Brukere

Sjekk mottakerens e -postadresse for å finne ut utdataene. Følgende utdata vises hvis ingen bruker opprettes.

Opprett en ny brukerkonto og sjekk e -posten igjen.

Konklusjon

Laravel -planleggeren gjør repeterende oppgaver enklere å utføre for applikasjonen. Etter å ha lest denne opplæringen, bør leserne nå ha en klar forståelse av begrepene om å lage tilpassede kommandoer og implementere automatiserte oppgaver ved hjelp av Laravel Scheduler.