در این سلسله آموزش ها سعی می کنیم شما را با یک چارچوب قدرتمند و کاربردی بنام MVC برای زبان PHP آشنا کرده و با ارائه نمونه برنامه ها و فیلم های آموزشی یادگیری این چارچوب را برای شما آسان کنیم. با یادگیری این چارچوب می توانید در آینده از برنامه نویسی PHP لذت ببرید.
برای یادگیری برنامه نویسی PHP در چارچوب MVC باید با زبان HTML و زبان برنامه نویسی PHP آشنا بوده و توانایی نوشتن برنامه های بانک اطلاعاتی با این زبان را داشته باشید.
معرفی چارچوب MVC
MVC یک چارچوب برای برنامه نویسی شی گرا و چندلایه با زبان های برنامه نویسی مختلف از جمله PHP است . با استفاده از چارچوب MVC می توانید بخش های مختلف برنامه کاربردی بر اساس PHP را از هم جدا کرده و براحتی پروژه های مختلف را به صورت تیمی پیاده سازی کنید.
MVC در ابتدا در سال 1970 برای استفاده در زبان smalltalk ارائه شده و به علت زیبایی و کارآیی فوق العاده آن، امروزه در زبان های برنامه نویسی دیگر از جمله سی شارپ و PHP استفاده می شود.
چارچوب MVC به شما اجازه می دهد تا حدودی برنامه نویسی PHP را بصورت سه لایه انجام دهید. لایه رابط کاربر، لایه بانک اطلاعاتی و لایه پردازش یا کاربرد. با این تقسیم بندی فعالیت های مختلف توسعه برنامه شامل طراحی رابط کاربر ، طراحی و برنامه نویسی ارتباط با بانک اطلاعاتی و طراحی و پیاده سازی منطق برنامه از هم جدا شده و به صورت مستقل توسط افراد مختلف انجام شوند و این استقلال سه بخش برنامه مزیت های بسیار زیادی از جمله طراحی و برنامه نویسی راحت تر، اشکال یابی سریعتر، انجام اصلاحات بصورت سریعتر و … دارد.
علاوه چارچوب MVC ساختار پروژه یا وب سایت را به صورت دقیق تعیین کرده و یک ساختار کلی برای زیرپوشه های وب سایت پیشنهاد می کند. این چارچوب دقیقاً محتوای هر زیر پوشه و حتی قاعده کلی برای نامگذاری فایل های داخل هر زیر پوشه را تعیین می کند. با استفاده از چارچوب MVC ناچاریم بصورت قاعده مند عمل کرده و از نامگذاری های نامانوس و سازماندهی به هم ریخته و سلیقه ای فایل ها پرهیز کنیم.
سخت گیری MVC در نامگذاری و تعیین ساختار وب سایت نتیجه بسیار جالبیدارد و آن حذف تمام قطعه کدهای تکراری در برنامه نویسی سایت (تاکید می کنم حذف تمام کدهای تکراری!) خواهد بود. با استفاده از MVC هر کد را تنها یک بار می نویسید و آن را برای موقعیت های مختلف اجرا می کنید.
معماری چارچوب MVC
چارچوب MVC برنامه نویسی و طراحی را به سه بخش یا لایه زیر تقسیم می کند :
لایه View
طراحی واسط کاربر ، نمایش اطلاعات به کاربر و دریافت اطلاعات از کاربر. این لایه جایی هست که داده ها از مدل گرفته شده و به صورت خروجی به کاربر نمایش داده میشوند.در برنامه های وب این لایه جایی است که کدهای HTML ساخته و نمایش داده میشوند.در این لایه ارتباط با کاربر انجام شده و با ارتباط با کنترلر، درخواست های کاربران را انجام می دهد..به عنوان مثال یک button را درنظر بگیرید که وقتی روی آن کلیک شد یکی از action های کنترلر رو صدا بزند.
لایه Model
ارتباط با بانک اطلاعاتی و اجرای دستورات روی بانک اطلاعاتی مثل حذف ، اضافه و ویرایش داده های دیتابیس در این بخش انجام می شود. این لایه برای ارتباط با دیتابیس استفاده میشود و باید اجازه دسترسی ، تغییر یا اضافه کردن داده ها را بدهد . این لایه در واقع یک پل بین لایه View و لایه Controller بوده و یکی از مهمترین خاصیت های این لایه این هست که ” نابیناست ” به این معنی که مدل نمیداند وقتی که داد ها را به View یا کنترلر ارسال کرد، چه اتفاقی برای آنها می افتد و به دنبال پاسخی از Controller یا View نیست.تنها هدفش این است که داده ها را ذخیره کند یا زمانی که درخواستی از بقیه لایه ها ارسال شد تغییرات درخواستی را انجام دهد.
لایه Controller
لایه اصلی برنامه نویسی دریافت اطلاعات از View و ارسال به Model و دریافت نتایج از Model و ارسال به ویوها ، این لایه شامل اصلی ترین کدنویسی های برنامه است. در این لایه برای هر کدام از درخواست های کاربر که به برنامه ارسال خواهد شد، توابعی نوشته می شود، کاربر سایت با کلیک روی هر کدام از لینک ها یا ارسال فرم های تابعی از این لایه را فراخوانی خواهد کرد. و این تابع با دریافت داده های ورودی احتمالی و بازبینی آنها، توابعی از لایه مدل را فراخوانی می کند . تابع مدل احتمالاً تغییرات درخواستی را را بانک اطلاعاتی انجام داده و یا اطلاعات درخواستی را از بانک خوانده و به کنتروکر برمی گرداند. تابع کنترولر در ادامه وظیفه آماده سازی خروجی ها و فراخوانی فایل ها View برای نمایش به کاربر را خواهد داشت.
شکل زیر نحوه ارتباط بین این سه بخش و تعامل کاربر با آنها را نشان می دهد:
در این قسمت مفاهیم کلی در مورد MVC را بررسی کردیم، در بخش بعدی جزئیات بیشتری از نحوه سازماندهی فایل های سایت و محتوای آنها را آموزش خواهیم داد
با ما همراه باشید.