معماری mvc چیست؟برنامه نویسی MVC در php و laravel چه کاربردی دارد؟

11 0 نظر
دپارتمان: آموزش طراحی سایت

ابتدا در پاسخ به سوال mvc چیست می‌توان گفت که معماری MVC یک الگو نرم‌افزاری است که آن برنامه را به سه قسمت اصلی که شامل نما، کنترلر و مدل باشد تقسیم می‌کند. هر یک از این مؤلفه‌ها برای رسیدگی به جنبه‌های مختلف توسعه خاص یک برنامه ساخته شده‌اند. MVC یکی از بهترین راه‌های توسعه استاندارد وب برای ایجاد پروژه‌های مقیاس‌پذیر و قابل توسعه است که در این صنعت استفاده بسیاری از آن می‌شود. زبان برنامه‌نویسی php به صورت پیش‌فرض امکانات پیاده‌سازی معماری MVC را ندارد، از این رو برخی فریم‌ورک‌های ثانویه برای این کار استفاده می‌شود. در حال حاضر یکی از بهترین آن‌ها لاراول است.

معماری MVC چیست؟

 

اجزای تشکیل‌دهنده‌ی معماری MVC چیست؟

مدل (Model)

مؤلفه Model با منطق مربوط به داده‌ها که کاربر با آنها کار می‌کند سرو‌کار دارد. این می‌تواند داده‌هایی باشد که بین اجزای View و Controller یا سایر داده‌های مرتبط با منطق تجاری منتقل می‌شود. به عنوان مثال، یک شی مشتری، اطلاعات مشتری را از پایگاه داده بازیابی می‌کند، آن را دستکاری کرده و داده‌ها را دوباره در پایگاه داده به روز می‌کند یا از آن برای ارائه داده استفاده می‌کند.

نما (View)

View برای UI برنامه استفاده می‌شود. به عنوان مثال، نمای مشتری شامل تمام مؤلفه‌های UI مانند جعبه متن، منوی کشویی و غیره است که کاربر نهایی با آنها در تعامل است.

کنترل کننده (Controller)

کنترل‌کننده‌ها به عنوان واسط بین مؤلفه های Model و View عمل می‌کنند تا کلیه منطق تجارت و درخواست‌های دریافتی را پردازش کنند، داده ها را با استفاده از مؤلفه Model دستکاری کرده و با Views در تعامل باشند تا نتیجه نهایی را ارائه دهد. به عنوان مثال، کنترل‌کننده مشتری تمام تعامل‌ها و ورودی‌های مربوط به نمای مشتری را کنترل می‌کند و بانک اطلاعات را با استفاده از Model Customer به روز می‌کند. از همان کنترلر برای مشاهده داده‌های مشتری استفاده خواهد شد.

لایه های معماری mvc

 

با تاریخچه MVC بیشتر آشنا شوید

الگوی MVC توسط Trygve Reenskaug اختراع شد. او اولین مقاله خود را در مورد MVC در سال 1978 نوشت. در ابتدا آن را الگوی ویرایشگر Thing Model View می نامید، اما او به سرعت نام این الگوی را به الگوی Model View Controller تغییر داد. 

Reenskaug در تلاش بود تا مشکل مدل سازی سیستم‌های پیچیده دنیای واقعی مانند "طراحی و ساخت یک پل بزرگ، یک نیروگاه یا یک سکوی تولید نفت خارج از ساحل" را حل کند. یک انسان دارای یک مدل ذهنی از این سیستم‌ها و یک کامپیوتر دارای یک مدل دیجیتال است. چگونه می‌توانید بین مدل ذهنی و مدل دیجیتالی ارتباط برقرار کنید؟

او در ابتدا مدل‌ها، نما‌ها و کنترل کننده‌ها را این‌گونه تعریف می‌کرد:

  • مدل ها: مدل ها دانش را نشان می‌دهند. یک مدل می‌تواند یک شیء واحد باشد یا می‌تواند یک ساختار اشیا باشد.
  • نماها: نمایش (بصری) از مدل است. این معمولاً ویژگی‌های خاصی از مدل را برجسته می‌کند. بنابراین به عنوان فیلتر ارائه دهنده عمل می‌کند.
  • کنترلر‌ها: یک کنترل‌کننده ارتباط بین کاربر و سیستم است. با تنظیم نمایش‌های مربوطه، ورودی را در اختیار کاربر قرار می‌دهد تا خود را در مکان‌های مناسب روی صفحه نمایش دهند. این وسیله با ارائه منوها یا ابزارهای دیگر برای دادن دستورات و داده‌ها، برای خروجی کاربر فراهم می‌کند. کنترل کننده چنین خروجی کاربری را دریافت می‌کند، آن را به پیام‌های مناسب ترجمه می‌کند و این پیام‌ها را به یک یا چند بازدید منتقل می‌کند.

 

برنامه نویسی MVC در PHP و لاراول

لاراول محبوب‌ترین چارچوب PHP است که توسط تیلور اتول ساخته شده است. این فریم ورک از الگوی معماری MVC استفاده می‌کند. این سیستم ویژگی‌های زیادی مانند یک سیستم تأیید هویت کامل، مهاجرت پایگاه داده، ORM ، Pagination و غیره را ارائه می‌دهد. قبل از ایجاد برنامه، شما نیاز به PHP 7.2 و MySQL دارید. 

از یک مدل برای تعامل با بانک اطلاعاتی استفاده می‌شود و البته لازم نیست حتما یک پایگاه داده باشد. این می‌تواند یک فایل JSON یا منابع دیگری باشد. یک کنترل‌کننده شامل منطقی مثلاً نحوه تأیید اعتبار داده‌های فرم و ذخیره یک منبع در بانک اطلاعاتی با تعامل از طریق Model است. نما رابط کاربری (UI) برنامه است که حاوی HTML یا نشانه‌گذاری ارائه است. همچنین می‌تواند مانند منطق و شرایط شرطی دارای منطق باشد. موتورهای قالب برای جاسازی منطق در Views استفاده می شوند. لاراول دارای موتور قالب Blade است که برای اضافه کردن منطق در داخل نماها استفاده می‌شود. 

 

آموزش phpآموزش مرتبط: دوره پروژه محور آموزش php

 

مسیرها

2 پرونده مسیر در لاراول وجود دارد که اولی web.php و دیگری با نام api.php است. تمام مسیرهای وب در پرونده‌های web.php مانند mywebsite.com/about یا mywebsite.com/contact ثبت شده‌اند. و مسیرهای مرتبط با API در api.php ثبت شده است.

کنترلرها و مدل‌ها

همه مدل‌ها در فهرست برنامه‌ها ذخیره می‌شوند و برای احراز هویت، یک مدل کاربر پیش فرض با لاراول ارائه می‌شود. app\Http\controllers دارای تمام کنترلرها است و همچنین برخی از کنترل‌کننده‌های پیش فرض دیگر برای تأیید اعتبار نیز در این مسیر وجود دارد.

نماها

نماها در resources/views ذخیره می‌شود و لاراول نمای پیش‌فرض Welcome.blade.php را فراهم می‌کند. نماهای  فریمورک لاراول دارای پسوندی به نام پسوند .blade.php است بنابراین در زمان ایجاد، باید پسوند blade را اضافه کنید.

سایر مسیرها

دایرکتوری عمومی امکانات لازم را برای قرار دادن CSS ، js و سایر منابع ایستا در فهرست‌های عمومی فراهم می‌کند. از طرف دیگر دایرکتوری Configuration شامل کلیه پرونده‌های پیکربندی مربوط به برنامه‌ها مانند session ، بانک اطلاعاتی و سایر تنظیمات است.

mvc چیست؟

 

لاراول MVC چگونه کار می‌کند؟

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

به طور خلاصه ، لاراول این کار را با دادن یک ورود به برنامه از طریق فایل index.php انجام داده و سپس با تنظیم مسیرهای تعریف شده، درخواست را به کنترلر مربوطه هدایت می‌کند. کنترل کننده در عوض، مدل مورد نظر را در صورت لزوم ارتباط برقرار می کند و درج می‌کند. سپس باید نما را بارگذاری کنید و سپس نتایج را به کاربر ارسال کنید. از طرف دیگر، اگر این یک رابط برنامه نویسی برنامه (API) باشد، خروجی به طور معمول از طریق فرمت JSON انجام می‌شود و با استفاده از بسته‌های مربوطه، XML نیز پشتیبانی می‌شود.

 

 آموزش لاراولآموزش مرتبط: دوره پروژه محور آموزش لاراول

 

مقایسه الگوهای معماری: MVC ،MVP و MVVM

الگوی MVP شباهت زیادی با الگوی MVC دارد. در این الگوی معماری "p" مخفف ارایه‌دهنده است. نما، کنترل صفحه را مدیریت کرده و نمایش می‌دهد. ارائه دهنده پاسخگو است تا از طرف نما به تمام رویدادهای UI پاسخ دهد. نما ورودی را از کاربران جمع می‌کند و سپس داده‌ها را از یک طرف به سمت دیگری مدل می‌کند که نتایج را به نمایش تبدیل می‌کند.

مقایسه MVP و MVC

ارایه‌دهنده مسئولیت رسیدگی به کلیه رویدادهای UI را به نمایندگی از نما فراهم می‌کند. سپس با کمک Model می‌توانید داده‌ها را فیلتر کرده و نتیجه را به View منتقل کنید. نما و ارائه دهنده کاملاً مجزا هستند اما از طریق رابط با یکدیگر ارتباط برقرار می‌کنند.

MVVM از MVC تعریف شده است. الگوی MVVM از اتصال داده دو طرفه بین View و View-Model پشتیبانی می‌کند. این اجازه می‌دهد تا انتشار خودکار تغییرات در داخل View-Model به View باشد. معمولاً مدل نما از الگوی مشاهده‌گر برای ایجاد تغییر در مدل View استفاده می‌کند.

ما در این مقاله سعی کردیم در پاسخ به سوال mvc چیست، بخش های مختلف آن و همچنین نقش معماری mvc در php و laravel را مورد بررسی قرار دهیم، امید است این مقاله به شما کمک کرده باشد.

1969

سبد خرید

سبد خرید شما خالی است.