فهرست:

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”/]