Laravel Events & Listeners
bir durum sonucu, belirlediğiniz işlemi yapmanızı sağlar. Örnek olarak yeni üye olan kullanıcıya, kullanıcı bilgilerini mail gönderme durumu verilebilir. Bu işlem için öncelikle Event ve Listener oluşturmanız gerekiyor.
php artisan make:event YeniUyeEvent php artisan make:listener YeniUyeMailListener --event=YeniUyeEvent
Alternatif olarak manuel olarak da Event ve Listener oluşturabilirsiniz. Bunun için EventServiceProvider.php dosyasını aşağıdaki gibi düzenlemelisiniz.
class EventServiceProvider extends ServiceProvider { /** * The event listener mappings for the application. * * @var array */ protected $listen = [ 'App\Events\YeniUyeEvent' => [ 'App\Listeners\YeniUyeMailListener', ], ]; */
Daha sonra aşağıdaki komutla dosyaları oluşur.
php artisan event:generate
Oluşturduğunuz Event dosyasını düzenleyerek parametreleri kullanabilirsiniz.
class YeniUyeEvent { public $user; public function __construct($book) //bunu buraya ekleyerek mailde parametreleri kullanabiliriz. Ör: Kullanıcı bilgileri { $this->user = $user; } ... }
Son olarak, Listener dosyasında ise yapılacak işlem handle metodunda tanımlanır.
use Mail; use App\Mail\MyTestMail; // Deneme mail sınıfı class YeniUyeMailListener { public function handle(YeniUyeEvent $event) { $to_email = 'info@example.com'; $details = [ 'title' => 'Account created', 'body' => 'Name:'.$event->user->user_name.' Mail:'.$event->user->mail, ]; Mail::to($to_email)->send(new MyTestMail($details)); } }
Son olarak; işlemi Queue olarak da gerçekleştirebilirsiniz. Bunun için ShouldQueue sınıfı kullanılır. Örneğimizde 100 siparişi olan üyeye hediye kupon gönderilecektir.
... use Illuminate\Contracts\Queue\ShouldQueue; class SendGiftCoupon implements ShouldQueue // ... public function shouldQueue($event) { return $event->customer->purchases > 100 && ! $event->customer->wasGifted(); }
İlk Yorumu Siz Yapın