فهرست:
event ها در لاراول
رویدادها در لاراول به کاربر این امکان را می دهند یک رویداد معین در وب اپلیکیشن توسعه داده شده خود را بررسی و رصد کنند. تمام کلاس های event در لاراول در پوشه app/Events
و listeners در پوشه app/Listeners
ذخیره می شوند. از دستور زیر برای ایجاد event و listeners استفاده می گردد. [pastacode lang=”markup” manual=”php%20artisan%20event%3Agenerate” message=”” highlight=”” provider=”manual”/] یک event می تواند چندین listener داشته باشد که از یکدیگر مستقل باشند. با اجرای خط فرمان بالا در پوشه events دو فایل event.php
و SomeEvent.php
ایجاد می شوند که بصورت زیر خواهند بود. [pastacode lang=”php” manual=”%3C%3Fphp%0Anamespace%20App%5CEvents%3B%0Aabstract%20class%20Event%7B%0A%20%20%20%2F%2F%0A%7D” message=”Event.php” highlight=”” provider=”manual”/] همانطور که در بالا ذکر شد، event.php
شامل تعریف اساسی کلاس Event
و namespace AppEvents
می باشد. لطفا توجه داشته باشید که رویدادهای سفارشی در این پرونده ایجاد شده است. [pastacode lang=”php” manual=”%3C%3Fphp%0A%0Anamespace%20App%5CEvents%3B%0A%0Ause%20App%5CEvents%5CEvent%3B%0Ause%20Illuminate%5CQueue%5CSerializesModels%3B%0Ause%20Illuminate%5CContracts%5CBroadcasting%5CShouldBroadcast%3B%0A%0Aclass%20SomeEvent%20extends%20Event%7B%0A%20%20%20use%20SerializesModels%3B%0A%20%20%20%2F**%0A%20%20%20%20%20%20*%20Create%20a%20new%20event%20instance.%0A%20%20%20%20%20%20*%0A%20%20%20%20%20%20*%20%40return%20void%0A%20%20%20*%2F%0A%20%20%20%0A%20%20%20public%20function%20__construct()%20%7B%0A%20%20%20%20%20%20%2F%2F%0A%20%20%20%7D%0A%20%20%20%0A%20%20%20%2F**%0A%20%20%20%20%20%20*%20Get%20the%20channels%20the%20event%20should%20be%20broadcast%20on.%0A%20%20%20%20%20%20*%0A%20%20%20%20%20%20*%20%40return%20array%0A%20%20%20*%2F%0A%20%20%20%0A%20%20%20public%20function%20broadcastOn()%20%7B%0A%20%20%20%20%20%20return%20%5B%5D%3B%0A%20%20%20%7D%0A%7D” message=”SomeEvent.php” highlight=”” provider=”manual”/] به عنوان مثال اگر ما بخواهیم برای یک رویداد، یک متغیر order را در متد سازنده کلاس بالا تعریف کنیم بصورت زیر عمل می کنیم. [pastacode lang=”php” manual=”public%20function%20__construct(Order%20%24order)%20%7B%0A%20%20%20%24this-%3Eorder%20%3D%20%24order%3B%0A%7D” message=”” highlight=”” provider=”manual”/]
Listeners ها در لاراول
در لاراول listeners
ها را در یک event
از قبل تعریف شده ایجاد می کنیم. با استفاده از دستور event:generate
در خط فرمان لاراول listeners
ها نیز در دایرکتوری app/listeners
ایجاد می شوند. این دایرکتوری شامل یک فایل به نام EventListener.php
می باشد که تمامی متد های مورد نیاز برای مدیریت listeners
در آن بصورت زیر تعریف شده است. [pastacode lang=”php” manual=”%3C%3Fphp%0A%0Anamespace%20App%5CListeners%3B%0A%0Ause%20App%5CEvents%5CSomeEvent%3B%0Ause%20Illuminate%5CQueue%5CInteractsWithQueue%3B%0Ause%20Illuminate%5CContracts%5CQueue%5CShouldQueue%3B%0A%0Aclass%20EventListener%7B%0A%20%20%20%2F**%0A%20%20%20%20%20%20*%20Create%20the%20event%20listener.%0A%20%20%20%20%20%20*%0A%20%20%20%20%20%20*%20%40return%20void%0A%20%20%20*%2F%0A%20%20%20%0A%20%20%20public%20function%20__construct()%20%7B%0A%20%20%20%20%20%20%2F%2F%0A%20%20%20%7D%0A%0A%20%20%20%2F**%0A%20%20%20%20%20%20*%20Handle%20the%20event.%0A%20%20%20%20%20%20*%0A%20%20%20%20%20%20*%20%40param%20SomeEvent%20%24event%0A%20%20%20%20%20%20*%20%40return%20void%0A%20%20%20*%2F%0A%20%20%20%0A%20%20%20public%20function%20handle(SomeEvent%20%24event)%20%7B%0A%20%20%20%20%20%20%2F%2F%0A%20%20%20%7D%0A%7D” message=”EventListener.php” highlight=”” provider=”manual”/]