खोज…


एक नए पंजीकृत उपयोगकर्ता को ईमेल भेजने के लिए ईवेंट और श्रोताओं का उपयोग करना

लारवेल की घटनाओं से ऑब्जर्वर पैटर्न को लागू करने की अनुमति मिलती है। जब भी वे आपके आवेदन पर पंजीकरण करते हैं, तो इसका उपयोग उपयोगकर्ता को एक स्वागत योग्य ईमेल भेजने के लिए किया जा सकता है।

App\Providers\EventServiceProvider वर्ग में घटना और उनके विशेष श्रोता को पंजीकृत करने के बाद कारीगर कमांड लाइन उपयोगिता का उपयोग करके नई घटनाओं और श्रोताओं को उत्पन्न किया जा सकता है।

protected $listen = [
    'App\Events\NewUserRegistered' => [
        'App\Listeners\SendWelcomeEmail',
    ],
];

वैकल्पिक संकेतन:

protected $listen = [
    \App\Events\NewUserRegistered::class => [
        \App\Listeners\SendWelcomeEmail::class,
    ],
];

अब निष्पादित php artisan generate:event । यह कमांड क्रमशः उपर्युक्त सभी घटनाओं और श्रोताओं को App\Events और App\Listeners निर्देशिकाओं में क्रमशः उत्पन्न करेगा।

हमारे पास किसी एकल ईवेंट की तरह कई श्रोता हो सकते हैं

protected $listen = [
    'Event' => [
        'Listner1', 'Listener2'
    ],
];

NewUserRegistered नव पंजीकृत उपयोगकर्ता मॉडल के लिए सिर्फ एक आवरण वर्ग है:

class NewUserRegistered extends Event
{
    use SerializesModels;

    public $user;

    /**
     * Create a new event instance.
     *
     * @return void
     */
    public function __construct(User $user)
    {
        $this->user = $user;
    }
}

इस Event को SendWelcomeEmail श्रोता द्वारा नियंत्रित किया जाएगा:

class SendWelcomeEmail
{
    /**
     * Handle the event.
     *
     * @param  NewUserRegistered  $event
     */
    public function handle(NewUserRegistered $event)
    {
        //send the welcome email to the user
        $user = $event->user;
        Mail::send('emails.welcome', ['user' => $user], function ($message) use ($user) {
                $message->from('[email protected]', 'John Doe');
                $message->subject('Welcome aboard '.$user->name.'!');
                $message->to($user->email);
        });
    }
}

जब भी कोई नया उपयोगकर्ता पंजीकरण करता है, तो अंतिम चरण ईवेंट को कॉल / फायर करना होता है। उपयोगकर्ता पंजीकरण तर्क को लागू करने पर यह नियंत्रक, कमांड या सेवा में किया जा सकता है:

event(new NewUserRegistered($user));


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow