فهرست:
event ها در لاراول
رویدادها در لاراول به کاربر این امکان را می دهند یک رویداد معین در وب اپلیکیشن توسعه داده شده خود را بررسی و رصد کنند. تمام کلاس های event در لاراول در پوشه app/Events
و listeners در پوشه app/Listeners
ذخیره می شوند. از دستور زیر برای ایجاد event و listeners استفاده می گردد.
php artisan event:generate
یک event می تواند چندین listener داشته باشد که از یکدیگر مستقل باشند. با اجرای خط فرمان بالا در پوشه events دو فایل
event.php
و
SomeEvent.php
ایجاد می شوند که بصورت زیر خواهند بود.
Event.php
<?php
namespace App\Events;
abstract class Event{
//
}
همانطور که در بالا ذکر شد،
event.php
شامل تعریف اساسی کلاس
Event
و
namespace AppEvents
می باشد. لطفا توجه داشته باشید که رویدادهای سفارشی در این پرونده ایجاد شده است.
SomeEvent.php
<?php
namespace App\Events;
use App\Events\Event;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
class SomeEvent extends Event{
use SerializesModels;
/**
* Create a new event instance.
*
* @return void
*/
public function __construct() {
//
}
/**
* Get the channels the event should be broadcast on.
*
* @return array
*/
public function broadcastOn() {
return [];
}
}
به عنوان مثال اگر ما بخواهیم برای یک رویداد، یک متغیر order را در متد سازنده کلاس بالا تعریف کنیم بصورت زیر عمل می کنیم.
public function __construct(Order $order) {
$this->order = $order;
}
Listeners ها در لاراول
در لاراول listeners
ها را در یک event
از قبل تعریف شده ایجاد می کنیم. با استفاده از دستور event:generate
در خط فرمان لاراول listeners
ها نیز در دایرکتوری app/listeners
ایجاد می شوند. این دایرکتوری شامل یک فایل به نام EventListener.php
می باشد که تمامی متد های مورد نیاز برای مدیریت listeners
در آن بصورت زیر تعریف شده است.
EventListener.php
<?php
namespace App\Listeners;
use App\Events\SomeEvent;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
class EventListener{
/**
* Create the event listener.
*
* @return void
*/
public function __construct() {
//
}
/**
* Handle the event.
*
* @param SomeEvent $event
* @return void
*/
public function handle(SomeEvent $event) {
//
}
}
بعدی قبلی