✅ WEB ja WordPressi uudised, teemad, pistikprogrammid. Siin jagame näpunäiteid ja parimaid veebisaidi lahendusi.

Kuidas Laraveli sündmusi ja kuulajaid oma rakenduses kasutada

14

Laraveli tuumaks on mitu lahedat funktsiooni. Mõned neist on ringhääling, failide salvestamine, teatised, sündmused jne. Kõik need sisseehitatud funktsioonid aitavad arendajatel lihtsustada tavalisi ja keerulisi ülesandeid.

Selles artiklis käsitleme Laraveli sündmusi, mis võimaldavad meil kuulaja registreerida rakenduses esinevate konkreetsete sündmuste jaoks. Teisisõnu võin öelda, et kasutaja on registreerunud, tellimus tehtud, toode lisatud, kõik need on sündmused. Ja kui peate pärast neid sündmusi mõne toimingu käivitama, saate kuulajad registreerida. Laravel helistab konkreetsetele üritustele registreerunud kuulajatele automaatselt.

Meie artikli jaoks rakendan kasutaja registreerimise ürituse. Kui kasutaja on rakendusse registreerunud, peaks süsteem saatma talle tervitusmeili. Siin on kasutajate registreerimine sündmus ja tervitusmeili saatmine on kuulaja.

Seda öeldes vaatame, kuidas kasutada sündmusi ja kuulajaid oma Laraveli rakenduses.

Sündmuste ja kuulajate registreerimine Laravelis

Laravel pakub EventServiceProviderfaili, kuhu peate oma sündmused ja kuulajad registreerima. Meie puhul peame kasutajate registreerimiseks lisama sündmuse ja kuulaja. Niisiis, avage fail EventServiceProvider.phpja lisage sinna UserRegisteredsündmus.

app / Providers / EventServiceProvider.php

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

Kasutaja saab sellele massiivile lisada nii palju sündmusi kui vaja. Järgmisena genereerige Laraveli sündmused käsu käivitamisega:

php artisan event:generate

See käsk loob kataloogi „Sündmused" ja „Kuulajad” kausta „rakendus”. Kaustas ‘rakendus / sündmused’ leiate faili UserRegistered.php. Samamoodi on SendWelcomeEmail.phpfail kataloogis „rakendus / kuulajad”.

Sündmuste ja kuulajate määratlemine

Olete nüüd valmis oma kasutaja registreeritud sündmuse katlakiviga. Meie eesmärk on saata kasutajale pärast registreerumist tervitusmeil. E-kirja saatmiseks vajame kasutajainfot sisaldavat kasutajaobjekti. Juhul kui UserRegisterededastasin kasutaja objekti selle konstruktorile. See objekt edastatakse seejärel kuulajale.

app / Events / 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;   
    }
}

Kood, mis saadab kasutajale meilisõnumi, läheb kuulajafaili. Avage kuulaja SendWelcomeEmailja kirjutage kood järgmiselt.

rakendus / Kuulajad / 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]');
        });
    }
}

Ülalolevas failis kirjutasin meilisõnumite saatmise koodi handlekuulaja klassi meetodisse. Seda seetõttu, et handlemeetod saab kõne pärast kasutaja registreerimissündmuse toimumist.

Esimest parameetrit kasutasin ka e-posti meetodis ’emails.mail’. See tähendab, et peaksite looma resources/views/emails/mail.blade.phpfaili.

mail.blade.php

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

Lõpuks helistage sündmusele

Selles etapis olete kõik koos oma sündmuse ja kuulajaga seadnud. Viimane samm on sündmuse helistamine sobivast kohast. Oletame, et kasutate kasutaja registreerimiseks ‘UserControllerit’. Nii UserControllersaate sündmusest helistada järgmiselt.

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;
    }
}

Nüüd, kui kasutaja on registreerunud, kutsub ülaltoodud kood kõne „UserRegistered” sündmusele, mis lõpuks kuulaja kutsub. Seejärel saadab kuulaja kasutajale tervitusmeili.

Loodan, et saate aru, kuidas kasutada sündmusi ja kuulajaid oma Laraveli rakenduses. Palun jagage oma mõtteid ja ettepanekuid allpool olevas kommentaaride jaotises.

seotud artiklid

See veebisait kasutab teie kasutuskogemuse parandamiseks küpsiseid. Eeldame, et olete sellega rahul, kuid saate soovi korral loobuda. Nõustu Loe rohkem