دوره تکنیکال PHP MVC

در حال برگذاری و ثبت نام

کاربردی و پروژه محور

وحید صالحی وحید صالحی
course-duration
طول دوره : 2 الی 3 ماه
course-length
کل دوره : بیش از 30 ساعت
course-publish
منتشر شده : 63
الگو ( معماری ) MVC چیست ؟
الگوی Model-View-Control (MVC) ، که در ابتدا در اواخر دهه 1970 تدوین شد ، یک الگوی طراحی یا به عبارتی یک معماری نرم افزاری است که بر اساس جدا نگه داشتن داده ها و بخش های مختلف یک نرم افزار بر پایه روش های تعامل بخش ها و داده ها با یکدیگر ساخته شده است. از نظر تئوری ، یک سیستم MVC که به خوبی توسعه یافته باید بتواند به یک توسعه دهنده وب چه Front-End چه Back-End اجازه دهد تا بر روی همان سیستم کار کنند بدون اینکه مداخله ای در اشتراک یا ویرایش فایل هایی داشته باشند که هر دو طرف روی آن کار می کنند ، ایجاد شود. حتی اگر MVC در ابتدا برای محاسبات شخصی طراحی شده باشد اما به دلیل جلوگیری از درهم ریختگی کدها ( Spaghetti Code ) و بر بطرف کردن دغدغه قابل استفاده بدون مجدد کدها ( Reusability) ، توسط توسعه دهندگان بسیار محبوب شده است. این الگو توسعه سیستم های ماژولار محور را امکان پذیر کرده و به توسعه دهندگان اجازه می دهد تا به سرعت قابلیت ها را به روز ، اضافه یا حتی حذف کنند.

مزایای الگوی MVC
کاهش انعطاف پذیری کدها
قابلیت استفاده مجدد از کدها
مدیریت آسان کدها و پروژه
خوانایی بالاتر کدها

در ادامه توضیحات الگوی MVC را مرور خواهیم کرد و یک تعریف کلی و در عین حال ساده از آن خواهیم داشت این توضیحات قطعا برای هر کسانی که قبلاً با MVC کد نویسی نکرده اند و یا کسانی که می خواهند مهارتهای قبلی خود را در توسعه نرم افزار افزایش دهند مفید خواهد بود.

درک الگوی MVC 
الگوی MVC از سه بخش اصلی تشکیل شده است : Model ، View و Controller کاربران یک نرم افزار بر پایه اگوی MVC بخش View یا همان رابط کاربری یک نرم افزار ( وب سایت ) را می بینند و از طریق بخش Controller با نرم افزار ارتباط و تعامل برقرا می کنند. بطور کلی بخش Controller پل ارتباطی نرم افزار می باشد که باعث ایجاد رابطه بین بخش View بخش Model می شود و از دسترسی و ارتباط مستقیم آنها با یکدیگر جلوگیری می کند.حال با این تعریف ساده می پردازیم به معرفی جداگانه هر بخش در الگوی MVC

 Model
بطور کلی کار Model ارتباط به دیتابیس است و توسط فرامینی که از controller دریافت می کند به تجزیه و تحلیل نوع درخواست ها پرداخته و تمام عملیاتی که مرتبط با ذخیر,بروزرسانی,حذف و یا فراخوانی دادها از دیتابیس است می پردازد و نتیجه را در اختیار Controller قرار می دهد یکی از جنبه های مهم Model این است که از نظر فنی به اصطلاح کور ( نابینا ) است به بیان ساده تر Model ها هیچ ارتباط و اطلاعی از آنچه برای داده ها هنگام انتقال به اجزای View یا Controller اتفاق می افتد ندارد. نه بخشهای دیگر را فرا خوانی می کنند و نه پاسخی می خواهد. تنها هدف آن پردازش داده ها و آماده سازی آنها برای انتقال به قسمت های دیگر نرم افرار است. با این حال ، مدل به سادگی نمی تواند به عنوان یک پایگاه داده یا دروازه ای به سیستم دیگری که فرآیند داده را کنترل می کند ، خلاصه شود. مدل باید به عنوان یک دروازه بان برای داده ها عمل کند ، هیچ سوالی نپرسد اما همه درخواست هایی را که سر راه آن قرار دارد بپذیرد. Model که اغلب پیچیده ترین قسمت نرم افراهای بر پایه الگوی MVC است ، قلب کل سیستم است زیرا بدون آن هیچ ارتباطی بین Controller و View وجود نخواهد داشت.

View 
View جایی است که داده های درخواست شده از مدل مشاهده شده و خروجی نهایی آن تعیین می شود. به طور سنتی در برنامه های وب که با استفاده از MVC ساخته می شوند ، View بخشی از سیستم است که وظیفه آن نمایش رابط کاربری و به زبان ساده تر همان کدهای CSS,HTML است. بطور کلی کابران یک نرم افزار از طریق مشاهده View ترقیب به واکنش می شوند. مثلا کاربر توسط یک دکمه مثل ثبت نام در سایت که در بخش View قرار داده شده کلیک می کند که باعث شروع عملیاتی در Controller می باشد. ( ارسال اطلاعات فرم ثبت نام به controller ) "توجه به این نکته بسیار مهم است که برای اعمال صحیح معماری MVC ، نباید هیچ تعاملی بین Model و View بطور مستقیم وجود داشته باشد و تمام منطق برنامه باید توسط بخش Controller اداره می شود"

Controller 
وظیفه Controller رسیدگی به درخواست ها و یا داده هایی است که کاربر وارد و یا ارسال می کند. حیات Controller به کاربر وابسته است . بدون وجود کاربر و بطبع درخواست او Controller هیچ معنا و هدفی ندارد. به بیان ساده تر وظیفه Controller جمع آوری اطلاعات از قبیل گوش دادن به درخواست های کاربر و نشان دادن واکنش مناسب است و در صورت نیاز انتقال آنها به Model برای پردازش داده ها و درخواست ها می باشد ، و منطقی غیر این ندارد. لازم به یادآوری است که Controller فقط وظایفی را انجام انجام می دهد که کاربر ابتدا در View درخواست آن را داشته و هر عملکرد Controller یک محرک است که با تعامل کاربر با View تنظیم و هدف گذاری شده است.

جمع بندی با یک مثال ساده که ما بارها در یک نرم افزا با آن سروکار داشته ایم , ثبت نام در یک نرم افزار
کاربر با پر کردن فرم ثبت نام و فشردن دکمه ثبت نام یه در خواست برای عضویت در سایت ارسال می کند این درخواست توسط controller مربوطه شنیده شده و اطلاعات کاربر را به Model مرتبط با ثبت نام کاربر منتقل کرده و Model فرایند ثبت نام را انجام داده و در صورت نیاز نتیجه عمل ثبت نام را در اختیار Controller قرار داده و سپس Controller نتیجه را به View منتقل می کند که نتیجه آن نمایش پیام ثبت نام شما با موفقیت صورت گرفت برای کاربر می باشد.
ادامه مطلب ...

سرفصل های دوره

  1. مروری بر معماری mvc – بخش اول منتشر شده 30 دقیقه
  2. مروری بر معماری mvc - بخش دوم منتشر شده 21 دقیقه

  1. ساختار فایل ها منتشر شده 32 دقیقه

  1. بازنویسی url ها و انتقال درخواست ها در سرور اشتراکی منتشر شده 43 دقیقه
  2. بازنویسی url ها و انتقال درخواست ها در سرور مجازی منتشر شده 24 دقیقه

  1. کار با composer و پیاده سازی autoloading بر پایه استاندارد psr-4 - بخش اول منتشر شده 32 دقیقه
  2. کار با composer و پیاده سازی autoloading بر پایه استاندارد psr-4 - بخش دوم منتشر شده 16 دقیقه

  1. پیاده سازی سیستم routing - بخش اول منتشر شده 36 دقیقه
  2. پیاده سازی سیستم routing - بخش دوم منتشر شده 31 دقیقه
  3. پیاده سازی سیستم routing - بخش سوم منتشر شده 21 دقیقه
  4. پیاده سازی سیستم routing - بخش چهارم منتشر شده 34 دقیقه
  5. پیاده سازی سیستم routing - بخش پنجم - regular expression - بخش اول منتشر شده 35 دقیقه
  6. پیاده سازی سیستم routing - بخش ششم - regular expression - بخش دوم منتشر شده 46 دقیقه
  7. پیاده سازی سیستم routing - بخش هفتم - داینامیک url ها- بخش اول منتشر شده 23 دقیقه
  8. پیاده سازی سیستم routing - بخش هشتم - داینامیک url ها- بخش دوم منتشر شده 38 دقیقه
  9. پیاده سازی سیستم routing - بخش نهم - داینامیک url ها- بخش سوم منتشر شده 34 دقیقه
  10. پیاده سازی سیستم routing - بخش دهم - dispatch - بخش اول منتشر شده 32 دقیقه
  11. پیاده سازی سیستم routing - بخش یازدهم - dispatch - بخش دوم منتشر شده 27 دقیقه
  12. پیاده سازی سیستم routing - بخش دوازدهم - dispatch - بخش سوم منتشر شده 31 دقیقه
  13. پیاده سازی سیستم routing - بخش سیزدهم - ارتباط روت ها با متدها - بخش اول منتشر شده 35 دقیقه
  14. پیاده سازی سیستم routing - بخش چهاردهم - ارتباط روت ها با متدها - بخش دوم منتشر شده 14 دقیقه
  15. پیاده سازی سیستم routing - بخش پانزدهم - کوئری استرینگ ها در route منتشر شده 23 دقیقه
  16. پیاده سازی سیستم routing - بخش شانزدهم - ریفکتور params منتشر شده 9 دقیقه

  1. پیاده سازی view ها منتشر شده 38 دقیقه

  1. پیاده سازی فایل کانفیگ منتشر شده 36 دقیقه

  1. model - پیاده سازی کلاس دیتابیس توسط الگوی singleton - بخش اول منتشر شده 34 دقیقه
  2. model - پیاده سازی کلاس دیتابیس توسط الگوی singleton - بخش دوم منتشر شده 18 دقیقه

  1. پیاده سازی کوئری بیلدر - بخش اول منتشر شده 37 دقیقه
  2. پیاده سازی کوئری بیلدر - بخش دوم منتشر شده 38 دقیقه
  3. پیاده سازی کوئری بیلدر - بخش سوم منتشر شده 47 دقیقه
  4. پیاده سازی کوئری بیلدر - بخش چهارم منتشر شده 24 دقیقه
  5. پیاده سازی کوئری بیلدر - بخش پنجم منتشر شده 27 دقیقه
  6. پیاده سازی کوئری بیلدر - بخش ششم منتشر شده 36 دقیقه
  7. پیاده سازی کوئری بیلدر - بخش هفتم منتشر شده 24 دقیقه
  8. پیاده سازی کوئری بیلدر - بخش هشتم منتشر شده 27 دقیقه
  9. پیاده سازی کوئری بیلدر - بخش نهم منتشر شده 15 دقیقه
  10. پیاده سازی کوئری بیلدر - بخش دهم منتشر شده 27 دقیقه

  1. اعتبار سنجی فرم ها - form-request - بخش اول منتشر شده 29 دقیقه
  2. اعتبار سنجی فرم ها - form-request - بخش دوم منتشر شده 30 دقیقه
  3. اعتبار سنجی فرم ها - بخش اول منتشر شده 27 دقیقه
  4. اعتبار سنجی فرم ها - بخش دوم منتشر شده 27 دقیقه
  5. اعتبار سنجی فرم ها - بخش سوم منتشر شده 23 دقیقه
  6. اعتبار سنجی فرم ها - بخش چهارم منتشر شده 28 دقیقه
  7. اعتبار سنجی فرم ها - بخش پنجم منتشر شده 33 دقیقه

  1. جلوگیری از حملات csrf - بخش اول منتشر شده 28 دقیقه
  2. جلوگیری از حملات csrf - بخش دوم منتشر شده 25 دقیقه

  1. مدیریت پیام ها - flash messages منتشر شده 40 دقیقه

  1. پروژه - پیاده سازی route های داشبورد و تنظیمات قالب - بخش اول منتشر شده 34 دقیقه
  2. پیاده سازی route های داشبورد و تنظیمات قالب - بخش دوم منتشر شده 30 دقیقه
  3. پیاده سازی route های داشبورد و تنظیمات قالب - بخش سوم منتشر شده 36 دقیقه
  4. پیاده سازی route های داشبورد و تنظیمات قالب - بخش چهارم منتشر شده 36 دقیقه
  5. پیاده سازی route های داشبورد و تنظیمات قالب - بخش پنجم منتشر شده 35 دقیقه
  6. پروژه - مدیریت آگهی ها - بخش اول منتشر شده 34 دقیقه
  7. پروژه - مدیریت آگهی ها - بخش دوم منتشر شده 40 دقیقه
  8. پروژه - مدیریت آگهی ها - بخش سوم منتشر شده 32 دقیقه
  9. پروژه - مدیریت آگهی ها - بخش چهارم منتشر شده 36 دقیقه
  10. پروژه - مدیریت آگهی ها - بخش پنجم منتشر شده 29 دقیقه
  11. پروژه - فایل آپلودر - بخش اول منتشر شده 33 دقیقه
  12. پروژه - فایل آپلودر - بخش دوم منتشر شده 24 دقیقه
  13. پروژه - بازنویسی متد falsh message منتشر شده 28 دقیقه
  14. پروژه - ajax در MVC - بخش اول منتشر شده 39 دقیقه
  15. پروژه - ajax در MVC - بخش دوم منتشر شده 31 دقیقه
  16. پروژه - ajax در MVC - بخش سوم منتشر شده 13 دقیقه

ادامه سرفصل ها

مدرس این دوره

dot وحید صالحی

وحید صالحی

در کنارت هستم تا به بهترین شکل این دوره رو به اتمام برسونی

  • بنیان‌گذار وب سایت کافه آموزش
  • بیش از 10 سال سابقه برنامه نویسی تحت وب
  • 9 سال سابقه تدریس حرفه ای در حوزه برنامه نویسی وب
  • توسعه‌دهنده‌ی اپلیکیشن‌های تحت وب
  • برنامه نویس وردپرس جاوااسکریپت وPHP
  • تدریس بیش از 7000 هزار نفر/ ساعت دوره و کارگاه حضوری در مجموعه سون لرن
  • تولید بیش از 2000 هزار ساعت آموزش و محتوای ویدیویی در حوزه برنامه نویسی وب
  • توسعه دهنده دورکار PHP درشرکت بیلیک آی تی ترکیه
  • برنامه نویس دورکار وردپرس در شرکت Lemon Technologies عمان
ارتباط با مدرس : دسترسی بلافاصله پس از ثبت نام
*********@gmail.com 0902*******

سوالات متداول

برای استفاده از دوره محدودیت زمانی وجود نداشته و بصورت مادام والعمر این دوره برای شما فعال خواهد بود لذا هر زمان که تمایل داشته باشید می توانید ویدئوها و فایل های دوره را دانلود و مشاهده نمایید.

دوره هایی که نیاز به آپدیت و بروزرسانی داشته باشند اطلاع رسانی خواهد شد و در صورت انتشار آپدیت دانشجویان دوره نیازی به پرداخت هزینه اضافه نخواهند داشت.

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

لطفا در این مورد با شماره پشتیبانی و یا از طریق شبکه های اجتماعی با ما در ارتباط باشید تا در درباره آن صحبت کنیم و تمام تلاشمان را می کنیم تا به نتیجه مطلوب برسیم :-)

faq faq faq faq

مشاوره

کاربر گرامی , توجه داشته باشید به سوالات متفرقه و غیر مرتبط با این دوره پاسخ داده نخواهد شد.

درخواست مشاوره قبل از ثبت نام ( رایگان )

ابتدا در سایت لاگین نمایید

دانشجویان این دوره چه نظری دارند

ثبت نام در این دوره آموزشی

ثبت نام نقدی

299هزار تومان

برای ثبت نام ابتدا وارد سایت شوید