کار با Event و listener ها

زمان قرارگیری : 18 خرداد 1396
زمان این قسمت : 24:53
برای دسترسی به این دوره نیاز است بصورت نقدی این دوره را خریداری کنید و این دوره بخشی از دوره های اعضای ویژه نمیباشد

تعداد شرکت کنندگان 1181 نفر
قیمت دوره 125000 تومان
وضعیت دوره تکمیل شده
زمان کل دوره 30:19:42
تعداد قسمت‌ها 51
نوع دسترسی نقدی

در این جلسه قصد دارم بصورت کامل به شما کار با Event و listener ها رو آموزش بدم . اما قبل از این که کار با این دو ابزار رو یاد بگیرید اول باید درک کنید که مفهوم این دو دقیقا چی هست در نهایت شما در این جلسه میفهمید که استفاده از این ابزارها میتونه در موارد خیلی خیلی زیادی به شما کمک کنه تا کدهاتون رو بهتر و تمیزتر بنویسید . 

 

رایگان 04:34
برای دسترسی به این دوره نیاز است بصورت نقدی این دوره را خریداری کنید و این دوره بخشی از دوره های اعضای ویژه نمیباشد

تعداد شرکت کنندگان 1181 نفر
قیمت دوره 125000 تومان
وضعیت دوره تکمیل شده
زمان کل دوره 30:19:42
تعداد قسمت‌ها 51
نوع دسترسی نقدی

آنلاین
user-avatar
مدرس دوره حسام موسوی

اول داستان، طراح گرافیک بودم و ۲ سالی به عنوان طراح مشغول بودم، بعد به برنامه‌نویسی علاقمند شدم و الان بیشتر از ۱۰ ساله که عاشق کدزنی و چالش‌های پروژه‌های مختلفم. به تدریس علاقه خاصی دارم و دوست دارم دانشی که در این راه بدست آوردم را در اختیار دیگران هم قرار بدم. 

سوالات و گفتگو‌ها

سوالات و گفتگو‌ها

اگر سوال و مشکلی یا حتی بحثی در یکی از حوزه‌های برنامه‌نویسی دارید این بخش به شما کمک ویژه‌ای خواهد کرد

دورهای پیشنهادی

مشاهده همه دوره ها
آشنایی با امکانات جدید لاراول 7

آشنایی با امکانات جدید لاراول 7

لاراول ۷ به تازگی توسط تیم توسعه دهنده لاراول معرفی شده، ما قصد داریم در این دوره امکانات جدیدی که به واسطه لاراول ۷ در اختیار توسعه دهندگان قرار گرفت...

آموزش پروژه محور لاراول

آموزش پروژه محور لاراول

آموزش لاراول آن هم با پروژه در یک آموزش پروژه محور لاراول یک شانس برای یادگیری بهتر و کاربردی‌تر لاراول محسوب می‌شود که در این دوره قصد اینکار را داری...

آشنایی با امکانات جدید لاراول 5.5

آشنایی با امکانات جدید لاراول 5.5

در همین ابتدای این دوره باید بگم کسانی میتونن این دوره رو مشاهده کنند که با لاراول آشنا باشن پس اگر هنوز نمی دونید که لاراول چطور کار میکنه ، لطف ابتد...

آشنایی با امکانات جدید لاراول 5.4

آشنایی با امکانات جدید لاراول 5.4

در همین ابتدای این دوره باید بگم کسانی میتونن این دوره رو مشاهده کنند که با لاراول آشنا باشن پس اگر هنوز نمی دونید که لاراول چطور کار میکنه ، لطف ابتد...

دیدگاه‌ها و پرسش‌ها

برای ارسال نظر لازم است ابتدا وارد سایت شوید
آفلاین
user-avatar
jaber
1 سال پیش

سلام اقا حسام عزیز

من به این ارور برخوردم ممنون میشم راهنمایی کنین

"Argument 1 passed to Illuminate\Auth\Events\Registered::__construct() must be an instance of Illuminate\Auth\Events\User, instance of App\User given, called in /Applications/MAMP/htdocs/laravel30198/laravel/routes/web.php on line 26

public function __construct(User $user) به این خط گیر داده
{
    $this->user = $user;
}

}

آنلاین
user-avatar
حسام موسوی
1 سال پیش

سلام مشکل در اشتباه use کردن User هست در این فایل برید در ابتدا و اینو حذف کنید Illuminate\Auth\Events\User, و جاش بزنید App\Use

آفلاین
user-avatar
dreamkiller
1 سال پیش

با سلام آقای موسوی
مورد من : با دستور
php artisan event:generate
فایل هایی که توی لیست EventServiceProvider هست ش پیام با موفقیت ساخته شدن میاد ولی اصلا ساخته نمیشه
نه کد های توی ویدئو نه کدهای خودش که به این صورت نوشته شده :

   protected $listen = [
        Registered::class => [
            SendEmailVerificationNotification::class,
        ],
    ];

مستندات لاراول رو هم چک کردم نسبت به زمان ضبط دوره فرقی نداشته قسمت رجیستر رخداد
اگه راهنمایی کنید ممنون میشم .

آنلاین
user-avatar
حسام موسوی
1 سال پیش

سلام چیزی که شما قرار دادید مربوطه به کد پیش فرض لاراول 5.7 و 5.8 هست که مربوط به تایید ایمیل میشه و این کلاس نیازی به ایجاد فایل نداره چون از قبل وجود داره به روشی که گفتیم اگر مایل به ایجاد هستید فایل خودتون رو مشخص کنید و دستور رو اجرا کنید

آفلاین
user-avatar
masami
2 سال پیش

سلام حسام جان ، خوبی ؟ استاد یه سوال دارم که شاید خیلی از دوستان دوست داشته باشن بدونن .
آقا من دارم رو یه پروژه کار میکنم ، میخوام یه قسمت رو مثل وردپرس کارکنم و از do_action , add_action استفاده کنم .
برای مثال من بعد از ذخیره شدن پست یک event با نام save_post تعریف میکنم و میخوام تو یه جای دیگه از اون event استفاده کنم و این امکان رو هم به توسعه دهنده بدم که اگه یجا اومد نوشت :

do_action('save_post','send_notify')

و تابع رو تعریف کنم :

function send_notify(){ echo "salam;" }
اونوقت این تابع send_notify اجرا بشه و باقی ماجرا . امکانش هست راهنمایی بکنی استاد؟
مرسی ازت

آنلاین
user-avatar
حسام موسوی
2 سال پیش

سلام خوب مشخصه از event و lisenter خود لاراول باید استفاده کنید

آفلاین
user-avatar
Mostafa Nazar
2 سال پیش

سلام
دوره شما رو دیدم خیلی دوره ی خوبی بود. من خودم تقریبا به صورت حرفه ای برنامه نویسی میکنم و دوره های زیادی دیدم ولی دوره شما خیلی دوره ی خوبی بوده. هم از لحاظ گفتاری شیوا بود و هم مطالب کامل بود. امکان داره بخش جستجو هم بهش اضافه کنید؟

آنلاین
user-avatar
حسام موسوی
2 سال پیش

سلام تشکر از نظرتون
در قسمت ۴۲ و ۴۳ در مورد جستجو کامل صحبت کردیم

آفلاین
user-avatar
حمید
2 سال پیش

الان منظور شما اینه که این کدها رو پاک کنم
"Registered::class => [
SendEmailVerificationNotification::class,
],"
و به جاش کدهایی که توی درس توضیح دادید رو بنویسم
گیج شدم

آنلاین
user-avatar
حسام موسوی
2 سال پیش

سلام خیر نیاز به این کار نیست چون چیزی که در حال مشاهده اش هستید یک سری کد پیشفرضه که قبلا نبود ولی الان هست .
قمست 14 رو کامل ببینید متوجه باید بشید که چطور میشه Event و Lisenter تعریف کرد

آفلاین
user-avatar
حمید
2 سال پیش

ممنون
حوصله تون خیلی عالیه
من اخه من جلسه 14 جون متوجه نشدم و گفته بودید جلسه 15 عملی میگید برا همون رفتم 15 رو دیدم اونم که خیلی سنگین و قروقاطی بود منم قاط زدم
بازم ممنون (ولی یه جایی فهمیدم که هم زبان هستیم ترکید فکر کنم ترک ارومیه یا اون ورا باشید )

آنلاین
user-avatar
حسام موسوی
2 سال پیش

اگر جای احساس میکنید موارد یمقدار سنگین هستن شاید بخاطر اینکه پایه هاتون در شی گرایی و mvc هنوز کامل شکل نگرفته و حرفه ای نشده . چون همونطور که گفته شد برای کار با لاراول نیاز شدید به این داستان دارید و چه چیزی راحتتر از Event و Lisenter چون کاملا مشخصه وظیفه اشون چیه . یجایی یه event اتفاق می افته lisenter های مربوط بهش یکسری اتفاقات رقم میزنن
برای مثال چیزی که در جلسه 50 هم گفتم بشه شکل زیر هست

    protected $listen = [
        'App\Events\UserActivation' => [
            'App\Listeners\UserActivation\SendMailNotification',
//            'App\Listeners\UserActivation\SendSMSNotification',
        ],
        'App\Events\ArticleEvent' => [],
        Registered::class => [
            SendEmailVerificationNotification::class,
        ],
    ];

شما میگید lisenter های پایین مروبط به event بالا میشن همین برای مثال

App\Listeners\UserActivation\SendMailNotification

مربوط میشه به event

App\Events\UserActivation

و هر زمان که این event اجرا شد lisenter های که براش معرفی کردیم اجرا میشن . به همین سادگی واقعا همنطور که گفتم اگر پایه هاتون رو قوی نکردید حتما قبلش برید سراغ کامل کردن شی گرایی , mvc و مقدمات لاراول
. در مورد هم زبان بودن باید بگم نه متاسفانه هم زبان نیستیم . من از شمال کشورم البته خیلیم دور نیست :)

آفلاین
user-avatar
حمید
2 سال پیش

درسته حق با شماست
من php رو خیلی وقته بلدم البته خیلی قوی نه
و شیگرایی و mvc رو تازه یاد گرفتم و پایم ضعیفه
ببخشید حالا که حرفش باز شد یه سوال داشتم
چقدر باید تمرین مداوم کرد تا شیگرایی رو کامل بلد شد؟
و همینطور mvc رو
میدونم که با گذراندن یه دوره نمیشه
و اینکه چیکار باید کرد که تمرین ها خسته کننده نباشن؟
البته اگه بگید که خودتون متولد چندید و چند ساله دارید کار میکنید (php , oop, mvc)هم خیلی ممنون میشم؟

آنلاین
user-avatar
حسام موسوی
2 سال پیش

ببینید نیاز به تمرین مدام زیادی نیست
نیاز به حداقل یک مینی پروژه دارید تا مفاهیمی که در شی گرایی و mvc یادگرفتید رو در کنار هم قرار بدید برای همین سعی کنید برای خودتون مینی پروژه تعریف کنید تا با مفاهیم بیشتر آشنا بشید همین .
برای درک بهتر تمرین ها سعی کنید در تایم کمتر باهاشون رو برو بشید و کارهای اضافه هم در کارهای که بهتون گفته میشه انجام بدید برای مثال نام متغیرها و کلاس ها رو تغییر بدید و همونو پیاده سازی کنید

آفلاین
user-avatar
حمید
2 سال پیش

خب الان چطوری میشه استفاه کرد؟
و اینکه ایا نیازی به ایجاد UserActivation و SendMailNotification نیست؟
من دوبار نگاه کردم این جلسه رو نمیتونم ارتباط بدم این تغییر رو فایل های قبل

آنلاین
user-avatar
حسام موسوی
2 سال پیش

جلسه 50 رو دیدید ؟

آفلاین
user-avatar
حمید
2 سال پیش

جلسه 50 رو دیدم مشخصا چیزی درباره این موضوع نگفتید
من میخوام بدونم برای ایجاد event , listener ها چیکار باید بکنم؟ event:generate رو میزنم می گه با موفقیت ایجاد شده ولی ایجاد نمیشه؟
ممنون میشم پاسخش رو همینجا بگید

آفلاین
user-avatar
حمید
2 سال پیش

منظورم اینه که من به جای این کد چی وارد کنم؟؟؟
" protected $listen = [
'App\Events\UserActivation' => [
'App\Listeners\UserActivation\SendMailNotification',
'App\Listeners\UserActivation\SendSMSNotification',
],
];"

آنلاین
user-avatar
حسام موسوی
2 سال پیش

سلام در این مورد از صفر تا صدشو در همین جلسه کامل گفتیم فکر کنم کامل واضع باشه و نیازی به توضیح دوباره نباشه

آفلاین
user-avatar
حمید
2 سال پیش

و اینکه وقتی میزنم php artisan event:generate میگه با موفقیت ایجاد شد ولی چیزی ایجاد نمیشه؟

آنلاین
user-avatar
حسام موسوی
2 سال پیش

اگر تغییری ایجاد نکرده باشید خوب چیزی اضافه نمیکنه چون

SendEmailVerificationNotification::class,

از قبل وجود داره و در هسته لاراول هست

آفلاین
user-avatar
حمید
2 سال پیش

سلام
استاد یه توضویح کوتاه درباره event:generate توی ورژن ۵.۷ میدید چون یکم فایل ها تغییر کرده مثلا محتوای صفحه eventServiceProvider این شکلی شده
" protected $listen = [
Registered::class => [
SendEmailVerificationNotification::class,
],
];
"

آنلاین
user-avatar
حسام موسوی
2 سال پیش

سلام این مورد چیز عجیبی نیست قبلا با string مشخص میکردیم الان به این شک ::class تعریف میشه . همونه

آفلاین
user-avatar
میلاد باقری
2 سال پیش

با سلام
بنده پروژه رو بر روی لوکال راه انداختم و به درستی کار میکنه ولی وقتی پروژه رو تو سرورمجازی آپلود کردم با یه مشکلی برخورد کردم که مربوط میشه به Timestamp دقیقا نمیدونم باید چیکار کنم . وقتی متد event رو فراخوانی میکنم این مشکل بوجود می آید.

Timestamp expired: Given timestamp (2018-05-22T15:36:20Z) not within 600s of server time (2018-05-22T07:33:21Z)

لطفا راهنمایی کنید

آنلاین
user-avatar
حسام موسوی
2 سال پیش

ممکنه به ساعت سرور شما مربوط باشه که باید تنظیم کنید

آفلاین
user-avatar
ali bahaedini
3 سال پیش
دقیقا مزیت event و Listener چیه وقتی میشه همینکار در خود کنترلر انجام داد...مثلا فراخوان کردن یک تابع که کار ارسال Mail و انجام بده بعد ایجاد موفقیت امیز یک یوزر...بجز مزیت صف ...
آنلاین
user-avatar
حسام موسوی
3 سال پیش
دیباگ و تست راحتر
سازمان دهی بهتر کدها
خوانایی بالاتر
و تکرار کدهای کمتر
یعنی ما میتونیم n جا صداش بزنیم
آفلاین
user-avatar
مهدی رستگار
2 سال پیش

به نظرم میشه تو پروژه های Async(غیر همزمانی) از event listener استفاده کرد مثلا برای like و dislike یا برای تعداد بازدید یک مطلب

آفلاین
user-avatar
امین
3 سال پیش
لطفا زمان ویدیو هارو کوتاه کنید به جاش قسمت هارو اضافه کنید همچنین در صورت امکان مبحث queue هارو پوشش بدید.
آنلاین
user-avatar
حسام موسوی
3 سال پیش
موضوعاتی که فقط توضیح هستند قسمت هاشون مشکلی ایجاد نمیکنه ولی چون همون موضوع رو با پروژه خیلی کامل باید بگم قسمت ها یکم طولانی میشن که باید همین باشه
یعنی باید پیوسته ببینین موضوع رو اگر فاصله بیفته ممکنه متوجه داستان نشید بحث queue ها در جلسات آینده گفته میشه قطعا
آفلاین
user-avatar
داریوش
3 سال پیش
سلام و خسته نباشید
از آموزش های خوبتون ممنونم.
یه موردی تا به حال کسی بهتون پیشنهاد نداده که انجام بدید و فکر میکنم خیلی نیاز باشه گرفتن خروجی با دو فرمت اکسل و word برای خروجی مثلا گزارش های پرداخت هست.به نظر من هم تو اکثر پروژه ها استفاده میشه ممنون میشم آموزش این قسمت هم مد نظر داشته باشید.
آنلاین
user-avatar
حسام موسوی
3 سال پیش
این پیشنهاد رو در نظر میگیرم ولی واقعیت اینکه خیلی خیلی موارد برای آموزش وجود داره و این دوره هدف منده و ممکنه نشه تمام مثال رو پوشش داد بخاطر اینکه نیاز مندی های هر پروژه واقعا فرق داره و نباید انتظار داشت همه موارد موجود در تمام پروژه ها در یک آموزش قرار بگیره
ولی سعی میکنم این موضوع رو هم قرار بدم
تشکر بابت نظرتون
آفلاین
user-avatar
داریوش
3 سال پیش
بله واقعا میدونم که هر پروژه ای شامل تمامی موارد نمیشه.ولی به هر حال این مورد خیلی نیاز پیدا میشه بهش.ممنونم از زحمت هاتون و اینکه به کاربران وب سایتتون اهمیت میدید و براتون نظرات مهمه.باز هم متشکرم.