laravel

Laravel Scheduler Tutorial

Laravel Scheduler Tutorial
Noen oppgaver kreves for å utføre regelmessig i alle applikasjoner, og det ville være mer effektivt hvis oppgavene kunne gjøres automatisk. Laravel-rammeverket gjør denne typen oppgaver lettere ved å bruke Laravel Scheduler. Sende tilbudsrelaterte bulk-e-postmeldinger, optimalisering av data, generering av rapporter, bevaring av sikkerhetskopiering av applikasjoner og fjerning av inaktive brukere er noen vanlige eksempler på gjentatte oppgaver som kan utføres med Laravel Scheduler. Laravel kan utføre spesifikke oppgaver med jevne mellomrom ved å bruke en innebygd oppgavebehandling som heter Korn jobb. Konfigurasjonsfilen heter Corntab brukes av Korn for å administrere planleggingsoppgaver. Denne opplæringen viser deg hvordan du administrerer repeterende oppgaver ved å lage Korn jobber og utføre oppgaveplanlegging.

Forutsetninger

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

  1. Lag et nytt Laravel-prosjekt
  2. Sett opp databasetilkoblingen
  3. Kjør migrer kommandoen og opprett en brukertabell
  4. Sett opp konfigurasjonen for sending av e-post (SMTP brukes her for sending av e-post.)

Implementere standardgodkjenning

Først implementerer du standard brukerautentiseringssystem for Laravel for å fullføre planleggingsoppgaven som vises i denne opplæringen. Kjør følgende kommandoer fra terminalen for å implementere standard Laravel-autentisering 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å oppdatert innhold.

$ npm install && npm run dev

Kjør følgende kommando for å tømme rutebufferen.

$ php håndverkerute: klar

Kjør følgende kommando for å starte Laravel-utviklingsserveren og sjekke om standard brukerautentiseringssystem fungerer.

$ php håndverker serverer

Åpne hvilken som helst nettleser og kjør følgende URL i nettleseren. Hvis den Logg Inn og registrere koblingen vises og fungerer som den skal, så er implementeringen av standardautentiseringen fullført riktig.

http: // localhost: 8000

Opprett en postbar klasse og håndverkskommando

Mange nye brukere vil opprette kontoer daglig og vil utføre mange oppgaver knyttet 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 er nødvendig med jevne mellomrom, er det bedre å utføre et bestemt spørsmål etter et regelmessig intervall. En Laravel-kommando brukes her for å få informasjon om de registrerte brukerne, og en mailbar klasse brukes til å sende informasjonen via e-post til administratoren eller en spesifisert person.

Kjør følgende kommando for å opprette en mailbar klasse for sending av e-post. Det vil opprette en fil med navnet SendUsersList.php på stedet app / Mail.

$ php håndverker: mail SendUsersList

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

navnerom App \ Mail;
bruk Illuminate \ Bus \ Queueable;
bruk Illuminate \ Contracts \ Queue \ ShouldQueue;
bruk Illuminate \ Mail \ Mailable;
bruk Illuminate \ Queue \ SerializesModels;
klasse SendUsersList utvider Mailable

bruk kø, SerializesModels;
/ * Deklarer en arrayvariabel * /
offentlig $ userList = array ();
/ **
* Opprett en ny meldingsforekomst.
*
* @ retur ugyldig
* /
offentlig funksjon __construct ($ userList)

/ * Initialiser arrayvariabelen med variabelen som passerer
objektoppretting av klassen. * /
$ this-> userList = $ userList;

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

/ * Diaplay visningsfilen med verdiene til arrayvariabelen * /
returner $ this-> view ('registeredList') -> med ('userList', $ this-> userList);

Kjør følgende kommando for å opprette den egendefinerte Laravel-kommandoen Registrer brukerliste, som vil utføre spørringen for å få listen over registrerte brukere informasjon hver dag. Kommandoen oppretter en fil med navnet Registrer brukerliste.php på stedet app / kommandoer.

$ php artisan make: kommando RegisterUsersList --kommando = registrert: brukere

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

navneområde App \ Console \ Commands;
bruk Illuminate \ Console \ Command;
/ * Importer nødvendige pakker * /
bruk Mail;
bruk App \ Mail \ SendUsersList;
bruk DB;
bruk Carbon \ Carbon;
bruk App \ Console \ Commands \ DateTime;
class RegisterUsersList utvider Command

/ **
* Navnet og signaturen til konsollkommandoen.
*
* @var streng
* /
/ * Legg til signaturverdi * /
beskyttet $ signatur = 'registrert: brukere';
/ **
* Kommandobeskrivelsen for konsollen.
*
* @var streng
* /
beskyttet $ beskrivelse = 'Liste over registrerte brukere';
/ **
* Opprett en ny kommandoinstans.
*
* @ retur ugyldig
* /
offentlig funksjon __construct ()

foreldre :: __ konstruere ();

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

/ * Les gjeldende systemdato * /
$ i dag = Carbon :: nå () -> toDateString ();
/ * Få listen over brukerinformasjon som er registrert
i gjeldende systemdato * /
$ current_registered_users =
DB :: tabell ('brukere') -> whereDate ('created_at', $ i dag) -> get () -> toArray ();
/ * Opprett objektet til den sendbare klassen med matrixvariabelen
som inneholder listen over registrerte brukere * /
$ email = ny SendUsersList ($ current_registered_users);
/ * Send e-post ved hjelp av e-postklasse * /
Mail :: til ('mottakerens e-postadresse') -> send ($ email);

Sett opp planen for å utføre kommandoen

Åpne Kjerne.php filen fra stedet app / konsoll og endre innholdet med følgende kode. Du kan angi forskjellige typer tidsplanfrekvensalternativer. Du kan få listen fra denne lenken. Her brukes timeplanen.

navneområde App \ Console;
bruk Illuminate \ Console \ Scheduling \ Schedule;
bruk Illuminate \ Foundation \ Console \ Kernel som ConsoleKernel;
klasse Kernel utvider ConsoleKernel

/ **
* Artisan-kommandoene som leveres av søknaden din.
*
* @var matrise
* /
/ * Intialiser $ kommandovariabelen * /
beskyttede $ kommandoer = [
'App \ Console \ Commands \ RegisterUsersList',
];
/ **
* Definer programmets kommandoplan.
*
* @param \ Illuminate \ Console \ Scheduling \ Schedule $ tidsplan
* @ retur ugyldig
* /
beskyttet funksjonsplan (Plan $ $ plan)

/ * Still timeplanen hver time * /
$ sched-> kommando ('registrert: brukere') -> time ();

/ **
* Registrer kommandoene for applikasjonen.
*
* @ retur ugyldig
* /
beskyttede funksjonskommandoer ()

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

Lag visning

Opprett registeredList.blad.php vis filen med følgende kode.


@if (count ($ userList)> 0)

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


@foreach ($ userList som $ user)
$ user-> name

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

Kjør kommandoen:

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

$ php håndverkerbuffer: tøm
$ php artisan config: cache

Kjør følgende håndverkskommando fra terminalen for å utføre den tidligere opprettet tilpassede kommandoen og sjekke utdataene.

$ php håndverkeregistrert: brukere

Sjekk mottakerens e-postadresse for å finne ut resultatet. Følgende utdata vises hvis ingen brukere blir opprettet.

Opprett en ny brukerkonto og sjekk e-posten på nytt.

Konklusjon

Laravel Scheduler gjør gjentatte oppgaver lettere å utføre for applikasjonen. Etter å ha lest denne veiledningen, skal leserne nå ha en klar forståelse av konseptene for å lage tilpassede kommandoer og implementere automatiserte oppgaver ved hjelp av Laravel Scheduler.

Beste kommandolinjespill for Linux
Kommandolinjen er ikke bare din største allierte når du bruker Linux, den kan også være kilden til underholdning fordi du kan bruke den til å spille m...
Beste Gamepad Mapping Apps for Linux
Hvis du liker å spille spill på Linux med en gamepad i stedet for et vanlig tastatur- og musinngangssystem, er det noen nyttige apper for deg. Mange P...
Nyttige verktøy for Linux-spillere
Hvis du liker å spille spill på Linux, er sjansen stor for at du har brukt apper og verktøy som Wine, Lutris og OBS Studio for å forbedre spilloppleve...