آموزش مدیریت Event ها در فریم ورک Laravel لاراول
رویدادها (Event)، الگوی ساده ی observer را پیاده سازی می کنند. این الگو، به کاربراجازه می دهد تا به event ها گوش داده و گوش فراخوان (listener) ایجاد کند.
به زبان ساده تر، event به معنای «رخداد» است و ما در برنامه ای که می نویسیم، رخدادهای زیادی داریم، مثل : ثبت نام کاربر، افزودن مقاله به سایت، افزودن محصول جدید به سایت و غیره. Listener به معنای «شنونده» می باشد، شنوندگان در طول برنامه منتظرهستند، تا رخداد یا Event آنها را صدا بزند و عملیاتی که به آنها محول شده را انجام دهند.
مثلا انتشار مقاله جدید در سایت می شود event و ارسالِ ایمیلِ اطلاع رسانی به کاربران عضو سایت، می شود listener.
در Laravel کلاسهای Event در پوشه App/Events ذخیره می شوند و شنوندگان (listener) در پوشه app/Events ذخیره می شوند.
دستورartisan زیر برای تولید Event و listener در زیر نشان داده شده است :
php artisan event:generate
این دستور، Event و listener را در پوشه های مربوطه همانطور که در بالا گفته شد ایجاد می کند.
یک رویداد(event) می تواند چندین شنونده (listener) داشته باشد که مستقل از یکدیگر هستند. پوشهevent های ایجاد شده توسط فرمان artisan شامل دو فایل زیر است: event.php و SomeEvent.php. آنها در اینجا نشان داده شده اند .
Event.php
<?php
namespace App\Events;
abstract class Event{
//
}
همانطور که در بالا ذکر شد event.php یک نمونه از کلاس Event هست و با namespace یا فضای نام App\Events فراخوانی می شود.
توجه داشته باشید که Event هایی که توسط کاربر تعریف و یا سفارشی شده است، در این فایل ایجاد می شود.
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 [];
}
}
همانطوری که مشاهده می کنید، این فایل از serialization ، برای پخش همگانی رویدادها (broadcasting events) در یک برنامه وب استفاده می کند و پارامترهای لازم در این فایل نیز راه اندازی(initialized) می شوند.
به عنوان مثال، اگر ما نیاز داشته باشیم تا بوسیله initialize یا مقداردهیِ order در متد سازنده (constructor)، یک event ثبت کنیم، می توانیم آن را به صورت زیر انجام دهیم:
public function __construct(Order $order){
$this->order = $order;
}
Listeners تمام فعالیت های ذکر شده در یک event ثبت شده را مدیریت می کنند.دستور آرتیسان event:generate همه listener ها را در دایرکتوری app/listeners ایجاد می کند.
پوشه Listeners شامل فایل EventListener.php است که تمام متدهای مورد نیاز برای مدیریت listener ها را دارد.
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){
//
}
}
همانطور که در کد بالا مشاهده می کنید EventListener.php حاوی تابع handle برای مدیریت event های مختلف هست.
ما می توانیم برای یک event یا رویداد، listener های مستقل و مختلف زیادی را تعریف کنیم.
این فصل در یک نگاه:
آشنایی با امکانات جدید لاراول ۷…
برخی از سرفصل های این پکیج آموزشی : لاراول چیست و چرا ما لاراول استفاده میکنیم کامپوزر کارش چیه و نصب اون نصب لاراول آموزش نصب لاراول از طریق اینستالر آموزش نصب لاراول با استفاده ا…این فصل در یک نگاه:
بهترین و پر بازده ترین روش تبدیل بازدیدکننده سایت به مشتری تبلیغات هدفمند و برند سازی هوشمندانه با ایمیل می باشد. ایمیل…
وبینار(سمینار آنلاین) آموزش تکنیک های ایمیل مارکتینگ اگر تا انتها این متن را مطالعه کنید نظر شما در مورد ایمیل مارکتینگ 180 درجه عوض می شود!! بر هیچکس پوشیده نیست که از سال 1972 که ای…این فصل در یک نگاه:
مباحث تکمیلی فریم ورک لاراول…
فصل اول :آموزش مقدماتی فریم ورک لاراول معرفی فریم ورک لاراول و پیشنیازهای انجام کار انجام کانفیگ های اولیه برای نصب و راه اندازی فریم ورک معرفی روش های نصب پروژه لاراولی از طریق سایت گی…این فصل در یک نگاه:
مباحث مقدماتی فریم ورک react.js…
توضیحات کلی مجموعه: فصل اول : آشنایی با مباحث مقدماتی فریم ورک react.js نصب و راه اندازی node.js و کلیه پیش نیازهای لازم نصب فریم ورک react روی لوکال و انجام تست های لازم آغاز آشنایی …