رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
نگاهی گذرا بر mvc در cakephp
#1
در ابتدای امر می خواهیم بررسی درباره معماری mvc مروری داشته باشیم و همچنین دلایل استفاده از آن را مرور نماییم.


فاجعه ای به نام کد نویسی ماکارونی
شاید برنامه نویسانی که از قدیم مشغول فعالیت بودند به خاطر دارند که در پروژه های بزرگی که قبلا (حدود 10 – 15 سال قبل) انجام می گرفت چند مشکلی بزرگ وجود داشت :
1) انجام عملیات به صورت تیمی مشکلات فراوانی داشت
2) حل مشکلات سایت مانند خطا ها و... خود نیاز به تعریف پروژه ای جدید به نام حل مشکلات پروژه داشت!
3) تغییر برنامه نویسان و یا عوض شدن اعضای تیم (به دلیل تعویض شدن اعضای تیم برنامه نویسی و تغییر متدولوژی در برنامه نویسی) مساوی بود با فاجعه!
4) پروژه تقریبا غیر قابل تغییر بود!
5) ...
دلیل این مسئله این بود که افراد تیم هرکدام دارای نحوه برنامه نویسی جدا گانهای بودند، ولی ما نیازمند یک تیم واحد بودیم. در واقع ما یک برنامه داشتیم با چند سبک برنامه نویسی چیزی شبیه ماکارونی!


برنامه نویسی شی گرا، راه نجات
یکی از راه هایی که باعث شد برنامه نویسی تسهیل شود، فراگیری برنامه نویسی شی گرا بود این مسئله باعث شد که هر کلاس را مانند کپسولی در نظر بگیریم و تنها با در دست گیری ورودی و خروجی آن کلاس (مانند متد ها و پارامترها و ...) شروع به برنامه نویسی بکنیم. این مسئله کار برنامه نویسان را بسیار راحت نمود. اما باز هم نحوه های مختلف برنامه نویسی باعث ایجاد اختلافات عمده ای در یکپارچه سازی برنامه ها از لحاظ نحوه برنامه نویسی می شد!
به عنوان مثال بعضی برای وصل شدن به پایگاه داده در یک برنامه از یک کلاس استفاده می کردند و بعضی این ارتباط را در داخل کد (و بدون استفاده از آن کلاس) برقرار می کردند، خود این مسئله مشکلات خاصی را پیش روی برنامه نویسان قرار می داد.


نیاز های اصلی ما در یک پروژه برنامه نویسی
اگر تنها یک پروژه برنامه نویسی ساده انجام داده باشید خواهید فهمید که ما به طور کلی:
1) نیاز به یک سطح ارتباط با کاربر داریم.
2) نیاز به سطحی برای بررسی نیاز کاربر و تحلیل و فرآيند هایی بر روی آن هستیم.
3) به لایه ای برای ارتباط با پایگاه داده و انجام امور مربوط به ذخیره بازیابی و ... بر روی اطلاعات نیاز داریم.


قسمت های عمده یک معماری
اگر به گفته های بالا دقت کرده باشید به این نتیجه می رسیم که ما 3 لایه کلی در برنامه نویسی داریم :

User Interface (UI) – لایه ای که با کاربر در ارتباط می باشد.
Business – لایه ای که فرآیندی بر روی اطلاعات آمده از سوی کاربر و یا پایگاه داده انجام می دهد.
Data Access – لایه ای که با دیتابیس در ارتباط است.

معماری MODEL – VIEW – CONTROL یا (MVC)
در این معماری در واقع ما دارای ترجمه ای از قسمت های مهم معماری به شکل زیر هستیم:
MODEL : وظیفه کار با پایگاه داده را بر عهده دارد.
VIEW : وظیفه ارتباط با کاربر نهایی را بر عهده دارد.
Control : وظیفه کنترل View و control و نحوه ارتباط آن دو را با هم بر عهده دارد.
در این باره باید دقت کنیم که هنگامی که ما یک URL را در این معماری بازدید می کنیم در واقع در حال فراخوانی یک controller هستیم!
آيا MVC مختص به زبان خاصی است؟
شما اگر کمی در اینترنت جستحو نمایید متوجه خواهید شد که کمتر زبانی است که در طرف وب نوشته شود و از معماری mvc پشتیبانی نکند. تنها تفاوت این معماری ها تنها در نوع پیاده سازی آنها می باشد. اما در تمامی زبان و استاندارد های برنامه نویسی موارد زیر باید حتما پیش از یادگیری معماری MVC در آن زبان خاص می بایستی فرا گرفته شود:

۱ . نحوه راه اندازی و تنظیم مفسر زبان مورد نظر جهت کار در وب. مثلا IIS در ASP.net یا APACHIE در php یا ... .
۲. آشنایی در سطح خوب با اصول شی گرایی مانند 3 اصل شی گرایی نحوه کار با interface نحوه event handling.
۳. تجربه کد نویسی تحت وب در همان زبان.


آیا برنامه نویسی با معماری MVC در یک زبان خاص کمکی به کار با سایر زبان های برنامه نویسی در این معماری میکند؟
جواب شما بلی است. حتی به شما کمک میکند تا برنامه های غیر وبی خود را با این معماری بنویسید! (MVC QT)
اگر شما به cakephp آشنایی دارید سری به MVC.net بزنید حتما شوکه خواهید شد!
اگر هم دوست دارید با یک زبان کمی ناشاخته تر آشنا بشوید که از MVC استفاده می کند سری به MVC in rebol بزنید!


استفاده ازکلاس مشترک در MVC
بسیاری از مواقع هست که ما نیازمند این هستیم که از کلاس های مشترک در MVC استفاده نماییم. به طور کلی این کلاس ها به دسته های زیر تقسیم میشود.

۱. کلاس هایی که در کنترل استفاده می شود. (در cakephp به آنها Component می گوییم)
۲. کلاس هایی که در ویو استفاده می شود. (در cakephp به آنها Helper می گوییم)
۳. کلاس هایی که در مدل استفاده می شود. (در cakephp به آنها Behavior می گوییم)
۴. کلاس هایی که در تمامی قسمتهای معماری به آنها نیاز داریم.(در cakephp به آنها Vendor می گوییم)




پاسخ
سپاس شده توسط saleh ، parsig ، iraitc ، mimre ، payamsp ، cake ، Mehrdad ، امیرخان ، mhdit


پیام‌های این موضوع
نگاهی گذرا بر mvc در cakephp - ghasem.fattahpour - 2011/10/17, 01:07 AM

موضوعات مشابه ...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  mention in cakephp mohaddeseh 3 3,178 2016/08/24, 12:16 PM
آخرین ارسال: mohaddeseh
  برای یادگیری cakephp باید او phpرا اموزش ببینم؟ mim90 8 6,634 2015/06/28, 11:18 PM
آخرین ارسال: fery
  درخواست یک کتاب خوب برای آموزش CakePHP iEhsan 8 11,842 2014/09/20, 02:18 PM
آخرین ارسال: vahidqara
  منظور از CakePHP Bake console چی؟ yasairane2014 1 2,482 2014/02/18, 06:12 PM
آخرین ارسال: saleh
  مفاهیم cakephp با مثال عرفان 0 2,100 2013/02/03, 09:09 AM
آخرین ارسال: عرفان
Question استفاده از روتر cakephp (حل شد) amirDev 3 3,913 2012/11/21, 12:49 PM
آخرین ارسال: saleh
  کنسول cakePHP dadadoodoo 4 4,723 2012/05/29, 09:21 PM
آخرین ارسال: cybercoder
  سوالات من در مورد CakePHP DeadSpace 3 4,583 2012/02/10, 11:57 AM
آخرین ارسال: payamsp
  مقدمه ای بر cakePHP cybercoder 1 7,850 2011/10/24, 12:06 PM
آخرین ارسال: peyvand1
  مستندات cakephp zagrosweb 1 3,185 2010/09/27, 08:28 PM
آخرین ارسال: payamsp

پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان