✅ WEB- ja WordPress -uutiset, -teemat, -laajennukset. Täällä jaamme vinkkejä ja parhaita verkkosivustoratkaisuja.

Kuinka käyttää Laravel-tapahtumia ja kuuntelijoita sovelluksessasi

15

Laravelin ytimessä on useita hienoja ominaisuuksia. Jotkut niistä ovat lähetys, tiedostotallennus, ilmoitukset, tapahtumat jne. Jokainen näistä sisäänrakennetuista ominaisuuksista auttaa kehittäjiä yksinkertaistamaan yleisiä ja monimutkaisia ​​tehtäviä.

Tässä artikkelissa keskustelemme Laravel-tapahtumista, joiden avulla voimme rekisteröidä kuuntelijan tiettyihin sovelluksessa esiintyviin tapahtumiin. Toisin sanoen voin sanoa, että käyttäjä on rekisteröity, tilaus tehty, tuote lisätty, kaikki nämä ovat tapahtumia. Ja jos joudut käynnistämään jonkin tapahtuman näiden tapahtumien jälkeen, voit rekisteröidä kuuntelijat. Laravel soittaa automaattisesti tiettyihin tapahtumiin rekisteröityneille kuulijoille.

Artikkeliamme varten toteutan tapahtuman käyttäjien rekisteröimiseksi. Kun käyttäjä on rekisteröitynyt sovellukseen, järjestelmän tulisi lähettää heille tervetuloviesti. Tässä käyttäjän rekisteröinti on tapahtuma ja tervetuloviestin lähettäminen on kuuntelija.

Tämän jälkeen katsotaanpa, miten tapahtumia ja kuuntelijoita voidaan käyttää Laravel-sovellukseen.

Tapahtumien ja kuuntelijoiden rekisteröinti Laraveliin

Laravel tarjoaa EventServiceProvidertiedoston, johon sinun on rekisteröitävä tapahtumat ja kuuntelijat. Meidän tapauksessamme meidän on lisättävä tapahtuma ja kuuntelija käyttäjien rekisteröintiä varten. Joten avaa tiedosto EventServiceProvider.phpja lisää siihen UserRegisteredtapahtuma.

app / Providers / EventServiceProvider.php

...
...
class EventServiceProvider extends ServiceProvider
{
    /**
     * The event listener mappings for the application.
     *
     * @var array
     */
    protected $listen = [
        'AppEventsUserRegistered' => [
            'AppListenersSendWelcomeEmail',
        ],
    ];

Käyttäjä voi lisätä tähän ryhmään niin monta tapahtumaa vaatimuksista riippuen. Luo seuraavaksi Laravel-tapahtumat suorittamalla komento:

php artisan event:generate

Tämä komento luo Tapahtumat- ja Kuunteluhakemistot ‘App’ -kansioon. Sovellus / Tapahtumat-hakemistosta löydät tiedoston UserRegistered.php. Vastaavasti SendWelcomeEmail.phptiedosto on hakemistossa ‘Sovellukset / Kuuntelijat’.

Tapahtumien ja kuuntelijoiden määrittely

Olet nyt valmis kattilalevyllä käyttäjän rekisteröimään tapahtumaan. Tavoitteenamme on lähettää tervetuloviesti käyttäjälle rekisteröinnin jälkeen. Sähköpostin lähettämiseen tarvitaan käyttäjäobjekti, joka sisältää käyttäjän tiedot. Jos UserRegisteredvälitin käyttäjäobjektin sen rakentajalle. Tämä objekti siirtyy sitten kuuntelijalle.

app / Tapahtumat / UserRegistered.php

<?php
 
namespace AppEvents;
 
....
use AppUser;
 
class UserRegistered
{
    use Dispatchable, InteractsWithSockets, SerializesModels;
 
    public $user;
 
    /**
     * Create a new event instance.
     *
     * @return void
     */
    public function __construct(User $user)
    {
        $this->user = $user;   
    }
}

Koodi, joka lähettää sähköpostin käyttäjälle, menee kuuntelijatiedostoon. Avaa kuuntelija SendWelcomeEmailja kirjoita koodi seuraavasti.

sovellus / Kuuntelijat / SendWelcomeEmail.php

<?php
 
namespace AppListeners;
 
....
use Mail;
 
class SendWelcomeEmail
{
    ....
    ....
 
    /**
     * Handle the event.
     *
     * @param  UserRegistered  $event
     * @return void
     */
    public function handle(UserRegistered $event)
    {
        $data = array('name' => $event->user->name, 'email' => $event->user->email, 'body' => 'Welcome to our website. Hope you will enjoy our articles');
 
        Mail::send('emails.mail', $data, function($message) use ($data) {
            $message->to($data['email'])
                    ->subject('Welcome to our Website');
            $message->from('[email protected]');
        });
    }
}

Kirjoitin yllä olevaan tiedostoon sähköpostin lähettämisen koodin handlekuuntelijaluokan menetelmään. Tämä johtuu siitä, että handlemenetelmä saa puhelun käyttäjän rekisteröintitapahtuman esiintymisen jälkeen.

Käytin ensimmäistä parametria myös nimellä "emails.mail" Mail-menetelmässä. Se tarkoittaa, että sinun pitäisi luoda resources/views/emails/mail.blade.phptiedosto.

mail.blade.php

Hi <strong>{{ $name }}</strong>,
 
<p>{{ $body }}</p>

Lopuksi soita tapahtumaan

Tässä vaiheessa asetat kaikki tapahtuman ja kuuntelijan kanssa. Viimeinen vaihe on kutsua tapahtuma sopivasta paikasta. Oletetaan, että rekisteröit käyttäjän ‘UserControllerilla’. Joten alkaen UserController, voit soittaa tapahtumaan seuraavasti.

app / Http / Controllers / UserController.php

<?php
 
namespace AppHttpControllers;
 
....
use AppEventsUserRegistered;
use AppUser;
 
class UserController extends Controller
{
    .....
    .....
 
    /**
     * Store a newly created resource in storage.
     *
     * @param  IlluminateHttpRequest  $request
     * @return IlluminateHttpResponse
     */
    public function store(Request $request)
    {
        $user = User::create([
            'name' => $request->input('name'),
            'email' => $request->input('email'),
            'password' => bcrypt($request->input('password')),
        ]);
  
        // call our event here
        event(new UserRegistered($user));
  
        return $user;
    }
}

Nyt kun käyttäjä on rekisteröitynyt, yllä oleva koodi antaa kutsun ‘UserRegistered’ -tapahtumaan, joka lopulta kutsuu kuuntelijan. Kuuntelija lähettää sitten tervetuloviestin käyttäjälle.

Toivon, että ymmärrät kuinka käyttää tapahtumia ja kuuntelijoita Laravel-sovelluksessasi. Jaa ajatuksesi ja ehdotuksesi alla olevassa kommenttiosassa.

Aiheeseen liittyvät artikkelit

Tämä verkkosivusto käyttää evästeitä parantaakseen käyttökokemustasi. Oletamme, että olet kunnossa, mutta voit halutessasi kieltäytyä. Hyväksyä Lisätietoja