खोज…
एक नए पंजीकृत उपयोगकर्ता को ईमेल भेजने के लिए ईवेंट और श्रोताओं का उपयोग करना
लारवेल की घटनाओं से ऑब्जर्वर पैटर्न को लागू करने की अनुमति मिलती है। जब भी वे आपके आवेदन पर पंजीकरण करते हैं, तो इसका उपयोग उपयोगकर्ता को एक स्वागत योग्य ईमेल भेजने के लिए किया जा सकता है।
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));