مدل‌ها در کدایگنایتر

آموزش کدایگنایتر - شرح وظیفه مدل‌ها در معماری MVC و فریم ورک کدایگنایتر

مدل‌ها در کدایگنایتر

بازدید کننده گرامی؛ سلام.

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

  • M مربوط به مدل‌ها (Models)
  • V مربوط به نماها (Views)
  • C مربوط به کنترل کننده‌ها (Controllers)

این موضوع علاوه بر هسته نرم‌افزار، خود را در شاخه‌های (Folders) خاصی از فریم ورک هم نشان می‌دهد. برای مشاهده آن‌ها وارد شاخه application شوید. در این قسمت صرف نظر از سایر پوشه‌ها، سه شاخه به نام‌های controllers، models و views وجود دارد. هر یک از این شاخه‌ها وظیفه خاصی دارند که به سادگی می‌توان گفت که حاوی فایل‌های خاص خود هستند. برای مثال شاخه models حاوی کلیه‌ی مدل‌های موجود در پروژه است. در ادامه مدل‌ها را شرح می‌دهیم.

مدل‌ها در کدایگنایتر

معماری MVC با تفکیک صحیح و شفاف عملیات مختلف یک سیستم نرم‌افزاری گامی مهم در توسعه برنامه‌نویسی برداشته است. صرف نظر از ماهیت و هدف هر پروژه (معمولاً وب سایت) فعالیت‌ها و نیازهایی وجود دارند که در همه پروژه‌ها مشترک هستند. لزوم اتصال به بانک اطلاعاتی یکی از این موارد است. از این‌رو طبق قوانین معماری MVC برنامه‌نویس باید کلیه کدها و توابعی را که مربوط به کار با بانک اطلاعاتی می‌شوند، در بخش مدل‌ ایجاد کند. این مدل در قالب یک فایل با پسوند php در پوشه مدل‌های کدایگنایتر (models) ذخیره می‌شود. پس مدل‌ها مربوط به بخش کار و تعامل با بانک اطلاعاتی پروژه شما می‌شوند. هنگام فراخوانی و صدا زدن یک مدل، کدایگنایتر به پوشه models موجود در شاخه application خود رجوع کرده و مدل مورد نظر را بارگذاری (Load) می‌کند. به این ترتیب با تفکیک فایل‌های مختلف، یک نظم خاص در پروژه شکل می‌گیرد که باعث خطایابی (Debug) سریع در هنگام توسعه می‌شود. لازم به ذکر است که تعداد مدل‌ها محدودیتی ندارد و شما می‌توانید در ازای بخش‌های مختلف وب سایت خود یک مدل جداگانه داشته باشید. مثال:

فرض کنید وب سایتی بخش اخبار، مقالات، نظرات و ارتباط با ما دارد. در این حالت شما باید به ازای هر یک از این بخش‌ها یک فایل مدل جداگانه در پوشه models ایجاد کنید. هر یک از این فایل‌ها به تشخیص شما، ممکن است حاوی تعدادی تابع کار با بانک اطلاعاتی باشند. فرضاً شاخه models کدایگنایتر شما حاوی فایل‌هایی با نام news_model.php, article_model.php, comments_model.php و contact_model.php خواهد بود. اکنون شما مدل‌های مختلفی دارید. با فرض اینکه یکی از این مدل‌ها برای بخش اخبار سایت شما است، توابعی که این مدل می‌تواند داشته باشد به شرح زیر است:

  • تابعی برای خواندن لیست اخبار (رکوردهای) موجود در بانک اطلاعاتی (SELECT)
  • تابعی برای درج خبر در بانک اطلاعاتی (INSERT)
  • تابعی برای ویرایش یک خبر (رکورد) خاص (UPDATE)
  • تابعی برای حذف یک خبر (رکورد) از دیتابیس (DELETE)

ارث‌بری مدل‌ها

از آن‌جا که در کدایگنایتر برنامه‌نویسی به صورت شی‌گرا (Objective) است لذا مدل‌ها باید از شی اصلی کدایگنایتر ارث ببرند تا به توابع پایه و اصلی دسترسی پیدا کنند. یعنی یک مدل که برنامه‌نویس ایجاد می‌کند در واقع فرزندی (Child) از مدل اصلی کدایگنایتر (Parent) خواهد بود. این کار به شکل زیر انجام می‌شود:

class Model_name extends CI_Model{
    function A()
    { ... }

    function B()
    { ... }

}

نکته: حرف اول نام مدل باید بزرگ باشد.

نکته: پیشوند CI مخفف عبارت Code Igniter است. مدل‌هایی که قرار است برگرفته از مدل‌های اصلی (Original) کدایگنایتر باشند از کلاس CI_Model ارث‌بری می‌کنند.

سؤالات خود را از طریق بخش تماس با ما مطرح فرمایید. موفق و پیروز باشید.


«وب مستر عزیز، کپی برداری از مطالب این سایت با ذکر منبع و لینک به سایت بلامانع است. در غیر اینصورت لطفاً از کپی‌برداری خودداری فرمایید. با تشکر»


مؤلف:
بازدید: 10256
تاریخ:

نظر خود را به عنوان اولین دیدگاه بیان کنید.

نام: * کد امنیتی: *
دیدگاه شما: *


وب سایت:
ایمیل: پنهان باشد
تلگرام: پنهان باشد
موبایل: پنهان باشد
جنسیت: آقا خانم اعلام نمی‌کنم
رنگ‌بندی: بنفش قرمز آبی سبز طلایی
  • درج کدهای HTML ممنوع است.
  • از ارسال تکراری خودداری فرمایید.
  • بهتر است با حروف پارسی دیدگاه خود را تایپ کنید.
  • به منظور کنترل و مدیریت محتوا، در صورت اضطرار، حق ویرایش و یا حذف نظر برای مدیریت محفوظ است.