دوره ساخت وب سایت مشابه Virgool.io با Vue.js و Laravel به صورت spa معرفی دوره و پیش نمایشی از پروژه - جلسه معرفی دوره
دسته بندی: طراحی و برنامه نویسی وب

توفیق حمزه ئی
1566
جلسه منتشر کرده6
دوره دارد788
دانشجو داردسرویس ابری لیارا پیشنهاد ما برای هاست Python
باز تولید دوره وبلاگ - ساخت وب سایت مشابه Virgool.io با Vue.js و Laravel به صورت spa
پیشنیاز این دوره اشنایی با لاراول و ویو هستش
در صورت ارائه نسخه جدید لاراول نسخه پروژه این دوره هم اپدیت میشه
این دوره به صورت فولستک تدریس میشه از طراحی قالب الی انتقال بر روی سرور.
قالب با استفاده از vuetify در دوره ایجاد میکنیم که یک ui Library زیبا برای vue.js هست.
همچنین از composition api که یک شکل جدید نوشتن vue در ورژن 3 هست استفاده شده کدای vuejs از ورژن 2(optianal api) به ورژن (composition api) ریفکتور میشه ولی همچنان روش قدیمی قابل استفاده هست.
همچنین برای احراز هویت کاربران از laravel sanctum استفاده شده که به جای توکن از سشن استفاده میکنیم که برای SPAها ایمنتر هست.
بخش نظرات به صورت realtime و با استفاده socket.io میسازیم که نیازی به پوشر نداشته باشیم.
همچنین بخش محبوبترین نوشته های سایت از ردیس استفاده میکنیم تا بهینه تر باشه و نیازی به دیتابیس mysql نباشه.
ایمیل ها با استفاده از جاب ها به کاربر ارسال میشه تا اگر ارسال ایمیل به مشکل خورد لاراول برای ارسال دوباره تلاش کنه و همچنین بهینه تر باشه.
همچنین بخش ادمین برای مدیریت بخش های محتلف که از data table مربوط به vuetify استفاده کردیم تا حد ممکن شخصی سازی کرده و همچنین قابلیت مرتب کردن و صفحه بندی با استفاده از لارول رو به data tableمون اضافه میکنیم.
در اخر میپردازیم به لاگین با استفاده از گوگل که کاربر با حساب گوگلش هم قادر به لاگین در سایت باشه.
بقیه فیچر ها:
- پروفایل کاربر
- تایید حساب کاربری
- tiptap text editor
- ساخت پیش نویس قبل ایجاد نوشته
- نظرات تودرتو(مانند reddit)
- ذخیره و لایک نوشته ها
- دنبال کردن کاربران(follow)
- ارسال نوتیفیکشن هنگام لایک شدن یا ارسال یک نظر در نوشته کاربر
- ارسال ایمیل هنگام لایک شدن یا ارسال یک نظر در نوشته کاربر در صورت فعال بودن فیلدها
- نمایش جدید ترین نوشته های دوستان
- جستجو در بین نوشته ها
میتوان اشاره کرد.
همچنین در این دوره به روش های مختلف ریفکتور کردن کد ها هم در قسمت بک اند هم بخش فرانت اند گفته میشه و کدامون رو تا حد ممکن خوانا و بهینه میکنیم :)
sam
سلام وقتتون بخیر ببخشید بنده در قسمت نصب laravel sanctum اررور 419 دریافت میکنم درحالی که بنده با شما جلو اومدم و کار هایی که گفته شد رو انجام دادم همچنین در قسمت کنسول به 3 اخطار برخورد میکنم Cookie “XSRF-TOKEN” has been rejected for invalid domain Cookie “laravel_session” has been rejected for invalid domain Cookie “Cks1ME79NqlprJsBsnvcLDdPpqPTXhcSuXOxJwLi” has been rejected for invalid domain لطفا راهنمایی بفرمایید
توفیق حمزه ئی
سلام دو مورد باید چک بشه ۱- روی localhost تست نکنین. اگه اینجوریه برای لاراول یه دومین مجازی بسازین ۲- اگه فرانت و بک جداس باید تمام مراحلی که توی داکیومنت نوشته طی کنین و کش رو هم پاک کنین.
zabih
سلام وقت بخیر اگر امکانش هست یه لینک دانلود ایجاد کنید که بشه کل دوره رو یکجا دانلود کرد ممنون
za
سوال دیگه اینکه در کل وقتی حذف میشه پست ها خب عکس ها توی حافظه میمونه من اینجا یکم گیج شدم ممکنه کمی توضیح بدین؟ پیشاپیش از لطف شما ممنونم
توفیق حمزه ئی
سلام راه کار اصولیش به این صورته که یه جدول مخصوص عکسا یا میدیا بسازین و وقتی عکسی ذخیره شده بگین اولا برای مدل Post هستش و دوما ایدیش مثلا ۲ هست. و وقتی پست حذف شد میتونین توی ایونت post تعریف کنین با عکسای نوشته حذف شده چیکار کنه.
za
سلام وقت بخیر سوالی برای من پیش اومده اگر فردی عکسی رو توی ادیتور متن اپلود کنه ولی بعد از اپلود لینکش رو از ادیتور پاک کنه اون عکس حذف نمیشه ولی توی هاست یا سرور باقی میمونه ممکنه بفرمایید راهکار پیشنهادی شما چی هست؟
zabih
سلام آقای حمزه ئی میخواستم بدونم نمیشد پروژه فرانت و بک رو جدا از هم میساختیم و تو یه پروژه نبود؟
توفیق حمزه ئی
سلام میتونستیم ولی این پروژه رو به صورت fullstack بردیم جلو و از مزیت هاش استفاده کردیم.
علی رضوی
سلام در این پروژه از laravel spatie استفاده شده ؟
توفیق حمزه ئی
سلام اگه منظورتون spatie-permissions هست، خیر استفاده نشده.
alireza
سلام ببخشید یه سوال داشتم من هر کاری می کنم این vuetify راستچین نمیشه با rtl: true ولی توی سورسی که دادید rtl میشه. میشه منو راهنمایی کنید من با لاراول 8 و "vue": "^2.5.17" کار می کنم و دقیقا هم مثل شما رفتم ولی نمیدونم چرا اینطوری میشه. ممنون میشم منو راهنمایی کنید.
توفیق حمزه ئی
سلام اول از همه مطمئن بشید فایلا رو کامپایل کردید. اگه کامپایل شدند کش براوزر رو پاک کنید و در نهایت اگه هیچ کدوم اینا جواب نداد توی یک ریپازیتوری گیتهاب پروژتون رو اپلود کنید که من نگاه کنم.
sam
سلام استاد وقت بخیر ببخشید بنده فونت رو به پروژه اضافه کردم اما متاسفانه اعمال نمیشه هیچ ارروری هم از npm دریافت نکردم امکانش هست راهنمایی بفرمایید؟!
توفیق حمزه ئی
با اقای نیکو Nikoo_Mohammad@ در تلگرام در ارتباط باشیدتا به من وصلتون کنن ببینم مشکلتون چیه
حمیدرضا خسروی
سلام خسته نباشید استاد فایل قالب پروژه باید از کجا دانلود کنم؟
توفیق حمزه ئی
سلام قالب داخل خود پروژه هست و ما هرچی که نیاز داشتیم رو از اول ساختیم و از قالب اماده استفاده نشده.
Ali.k
اتصال به درگاه بانگ توضیح داده میشه به صورت عملی
توفیق حمزه ئی
دوره وبلاگ هست برای همین درگاه بانکی نداریم. میتونین دوره فروشگاه فایل رو چک کنین.
ممد
سلام آقای حمزه ئی عزیز خوب هستید؟ من 3 ماهه 4 ماهه لاراول رو شروع کردم و تا حدود زیادی باهاش کار کردم و اینکه این دوره مناسب من هس ک میخوام خیلی پیشرفته با لاراول کد بزنم ؟ ممنون میشم توضیح مختصری بدین ممنون
توفیق حمزه ئی
سلام دوست عزیز، اولا شما پیش نیاز این دوره رو یعنی لاراول و ویوجی اس رو باید رعایت کنین برای vue.js دوره خود من فصل اولش رایگان هست که تا حدود زیادی پیش نیاز رو پوشش میده هر چند composition api در ورژن 3 ویو تغییراتی داشته که اونا در دوره ویو بررسیش کردیم. اما برای کد نویسی پیشرفته لاراول این رو باید خودتون تصمیم بگیرین چون ما در اینجا از لاراول تقریبا به صورت api استفاده میکنیم و شاید تعریف شما از کدنویسی پیشرفته لاراول فرق کنه ولی به نظر خودم حل کردن مسایل مختلف در لاراول مهم تر از کدنوشتن پیشرفته هست. چرا؟ چون وقتی خیلی از مسائل رو حل کنین طبیعتا کم کم کدنویسی پیشرفته رو در این میان یاد میگیرید.
امیر
سلام وقت به خیر یه سوال داشتم شما در controller برای لایک پست از sync استفاده کردید و برای فالو کردن از toggle می خواستنم بپرسم چون فالو کردن فقط داره روی مدل یوزر اعمال میشه از toogle استفاده کردید یا در لایک کردن هم میشه از toggle استفاده کرد ؟ ممنون
توفیق حمزه ئی
سلام نحوه کار این دو متود فرق میکنه برای sync وقتی بهش یک لیست از id بهش بدین برای رابطه بین این دو مدل فقط اونا رو نگه میداره هرچی بین اونا نباشه حذف میشه و فقط این ایدی ها باقی میمونن البته این رفتار پیش فرض این متد هستش. و نحوه کار toggle اینه که لیست ایدی هایی که بهش پاس داده شده اگه توی رابطه نباشه، به دیتابیس اضافه میکنه و اگه توی رابطه باشه از دیتابیس حذف میکنه. toggle برای جایی به درد میخوره که برای اضافه یا حذف فقط یک api درست کنیم.
علیرضا
من تقریبا دو ساله با لاراول پروژه های مختلفی رو زده ام و این رو قاطعانه میگم که تدریس آقای حمزه ئی ، اصولی و دقیقا همه اون چیزی بود که بهش نیاز داشتم.
توفیق حمزه ئی
اگه این دوره ها کمترین کمک رو هم بهتون کرده باشن باز هم خیلی خوشحال میشم و بازم سعی میکنم کیفیت دورهها رو بالاتر ببرم D:
امیر
سلام وقت به خیر من تنظیمات laravel-echo رو مطابق آموزش انجام دادم و سرورم میتونه event ها رو listen کنه ولی تو فرانت callback متد listen اصلا اجرا نمیشه و حتی یه رشته رو هم console نمی کنه توی تلسکوپ هم همه چی اوکیه و هم event و هم redis با موفقیت اجرا میشند ممنون میشم کمکم کنید
توفیق حمزه ئی
سلام دوست عزیز خیلی خوب شد این کامنت رو گذاشتین چون بقیه هم میتونن متوجه بشن چرا این کار نمیکنه. در حال حاضر laravel/echo با ورژن جدید socket.io-client یعنی ورژن 3 سازگار نیست اگه به فایل package.json پروژه من هم نگاه بندازین میبینین ورژنش برابره با 2 هست در حال حاظر باید داونگرید کنین به یه ورژن پایین تر و همچنین به این لینک هم نیم نگاهی داشته باشین https://github.com/laravel/echo/issues/290 که اگه این مشکل برطرف شد میتونین با خیال راحت از جدیدترین نسخه هم استفاده کنین.
امیر
سلام تو قسمت 80 موقع ریفکتورینگ به ویو3 تو کامپوننت tiptapEditor کامپوننت drop-zone-modal رو ایمپورت شده بهش یه ref دادید تا بتونید متد های داخلش رو کال کنید سوال من اینه چرا ref ، dropzone رو به عنوان reactive دیتا تعریف کردید ؟ من خودم از به setup پارامتر refs رو پاس دادم و refs.dropzone.showModal(imageCommand) ولی undefined می گیرم ولی با روش شما درسته
توفیق حمزه ئی
سلام تنها این روشی که نوشتم در vue 3 وجود خواهد داشت کمی فرق میکنه با نحوه استفاده از ref در ورژن قبلی برای همین اگه refs رو از setupContext دریافت کردم بدونین برای اشنایی بهتر شما بوده و در نظر بگیرین همچنین روشی در vue 3 در بخش composition api وجود نخواهد داشت.
امیر
سلام وقت به خیر می خواستم بپرسم تفاوت this.$store و این که store رو ایمپورت کنیم و بعد استفاده کنیم در چیه ؟
توفیق حمزه ئی
سلام. فرق خاصی وجود نداره با this.$store میتونین مستقیم از vue با vuex ارتباط برقرار کنین اما این ماله Option api هست توی composition api باید از طریق context با store ارتباط برقرار کرد که توی ویدیو ها هم هردو رو پوشش دادم. اما حتی توی ورژن های قبلی هم میشد که vuex رو ایمپورت کرد و توی جایی که لازم داریم با vuex خیلی راحت میتونیم ارتباط داشته باشیم
امیر
سلام وقت به خیر شما تو آموزش استیت یوزر رو به صورت یه ماژول نوشتید البته تا قسمت هایی که من دیدم می خواستم بپرسم ایا میشه تو ویو خود این استیت ها رو Lazy کرد چون وقتی ما store رو تو یه کامپوننت ایمپورت می کنیم تمام ماژول های استیت رو هم به کامپوننت ایمپورت می کنیم ممنون
توفیق حمزه ئی
سلام اقای حیدری سوال خوبی بود. بله میشه ولی نه به صورت lazy اگه به صورت فایل بود میشد lazy کرد که خود وبپک تشخیص بده فایل نیاز هست یا نه اما اینجا باید ویو و vuex تشخیص بده که به اون ماژول نیاز داره یا نه. در واقع روش کارم به این صورت هست که توی فایل ماژول رو ثبت میکنیم اینا رو توی دوره ویوجیاس کامل پوشش خواهم داد ایشالله. اما در واقع ماژول کاربرم نباید lazy بشه:) چون توی همه کامپوننت ها بهش نیاز دارین اما برای بقیه ماژول سوالتون کاملا به جاست.
مسعود ابراهیمی
سلام اقای حمزه ای خیلی ممنونم از اموزش های خوبتون اگر امکانش هست لطفا یه دوره برای اموزش ناکس بزارید خیلی جاش خالیه ممنونم
توفیق حمزه ئی
سلام اقای ابراهیمی، دوره فروشگاه فایل قرار هست که بازتولید بشه و پروژه رو به صورت فرانت و بک جدا و همچنین قراره که ناکست هم پوشش داده بشه. اما چون مباحث پیشرفته میشه برای vue اول دوره ویوجیاس رو قرار میدیم که دوستان بتونن همراهی کنن.
Sajad
سلام میخواستم بپرسم که در این دوره چطور با استفاده از ویو با بک اند ارتباط برقرار می کنید؟ از طریق api؟ ممنون
توفیق حمزه ئی
سلام دوست عزیز درخواست ها به صورت api هستن اما اگه منظورتون که فرانت و بک جدا هست باید بگم خیر این دوره به صورت fullstack و هردو بخش فرانت و بک با هم گفته شده
Arman Amiri
سلام . جای دوره لاراول و ویو ب صورت api خیلی خالیه . ممنون میشم اگ ی دوره شروع کنید
توفیق حمزه ئی
سلام اقای امیری. دوره فایل با ناکست به صورت api خواهد بود ایشالله :)