Laravel serimize devam ediyoruz. Bugünkü konumuz: Laravel’de Events ve Listener Kullanımı. Laravel’de events ve listener kullanımı konusunda elimizden geldiğince yardımcı olmaya çalışacağız.
1. Olay Sistemi Nedir?
Web uygulamalarında belirli olaylar gerçekleştiğinde tetiklenecek kodlar yazmak için olay sistemi kullanılır. Laravel, olay dinleyicileri ve yayınlayıcıları ile bu işlemi kolaylaştırır.
2. Blog Uygulaması Örneği:
Blog uygulamamızda aşağıdaki durumlarda olay tetiklemek ve dinlemek için Laravel’in olay sistemini kullanacağız:
- Bir blog yazısı silindiğinde yorumları da silme
- Bir yorum yapıldığında yorumu onaylama
3. Kurulum:
Olay sistemi işlemini kullanabilmek için herhangi bir paket kurmanıza gerek yoktur.
4. Events(Olaylar):
App\Events\PostDeleted.php
ve App\Events\CommentCreated.php
dosyalarında olayları tanımlayacağız:
PHP
class PostDeleted
{
use Dispatchable, InteractsWithSockets, SerializesModels;
public $post;
public function __construct(Post $post)
{
$this->post = $post;
}
}
class CommentCreated
{
use Dispatchable, InteractsWithSockets, SerializesModels;
public $comment;
public function __construct(Comment $comment)
{
$this->comment = $comment;
}
}
5. Listeners(Dinleyiciler):
App\Listeners\DeletePostComments.php
ve App\Listeners\ApproveComment.php
dosyalarında olaylara nasıl tepki verileceğini tanımlayacağız:
PHP
public function handle(PostDeleted $event)
{
$event->post->comments()->delete();
}
public function handle(CommentCreated $event)
{
$event->comment->approved = true;
$event->comment->save();
}
6. Yayınlama:
PostController.php
ve CommentController.php
dosyalarında olayları yayınlayacağız:
PHP
public function destroy(Post $post)
{
// ...
event(new PostDeleted($post));
}
public function store(Request $request)
{
// ...
event(new CommentCreated($comment));
}
7. Broadcasting:
Olayları gerçek zamanlı olarak web socketi ile kullanıcılara da gönderebilirsiniz. Laravel, Pusher gibi broadcasting sağlayıcıları ile entegre olarak bu işlemi kolaylaştırır.
Sonuç:
Bu yazıda, Laravel ile olay sistemi kurmayı nasıl kullanacağımıza dair detaylı bilgiler verdik. Blog uygulaması örneği üzerinden blog yazısı silme ve yorum onaylama gibi işlemler için Event ve Listener kavramlarını kullanarak olay tetikleme ve dinleme işlemini adım adım ele alarak, Laravel’in sunduğu olay sistemi araçlarının avantajlarını deneyimledik.
Ek Kaynaklar:
- Laravel Resmi Dokümantasyonu: https://laravel.com/docs/10.x
- Laravel Türkiye Topluluğu: https://laravel.gen.tr/
Bu blog yazı serisinde, Laravel’in temel özelliklerini ve kullanımını detaylı bir şekilde inceleyeceğiz. Takipte kalın!
Not: Bu yazı sadece basit bir örnektir. Gerçek bir blog uygulaması için daha fazla özellik ve işlev eklemeniz gerekir.
Serinin Devamı:
Bu blog yazı serisinde, Laravel mail gönderme ve Laravel’in temel ve ileri düzey özelliklerini detaylı bir şekilde inceleyeceğiz. Takipte kalarak Laravel ile web geliştirmenin keyfini çıkarabilirsiniz!