مقدمه

اشنایی با CodeIgniter

فریمورک CodeIgniter بر پایه معماری MVC میباشد. MVC  نرم افزار را به سه قسمت Model و View و Controller  تقسیم می کند. که هر کدام از این سه قسمت وظیفه خاصی را در چرخه حیات نرم افزار بازی می کنند.

001

  • Model
    مفاهیم استفاده شده در نرم افزار تحت عنوان Model ها ایجاد می شوند. در MVC هریک از Class های ما یک Model هستند. Model در Logic برنامه هیچ نقشی ندارد. ارتباط با پایگاه داده هم در Model صورت می گیرد و Model ها پل ارتباطی بین نرم افزار و پایگاه داده نیز هستند.
  • View
    View رابط کاربری نرم افزار است و می توان گفت فرم های نرم افزار و تمام چیزهایی که کاربر با آنها در ارتباط است تحت عنوان View در نرم افزار قرار می گیرد. View نیز هیچ نقشی در Logic نرم افزار ندارد و تنها پل ارتباطی بین کاربر و سایر بخش های نرم افزار است. تاکید می کنم که View هیچ تصمیم گیری انجام نمی دهد و فقط نمای بیرونی نرم افزار است.
  • Controller
    Controller ها قلب تپنده نرم افزارهای MVC هستند. تمام تصمیم گیری ها و Logic نرم افزار در Controller قرار می گیرد و Controller پل ارتباطی Model و View است. در واقع با بیانی ساده می توان گفت Controller تصمیم می گیرد که چه داده ای از کدام Model دریافت شود و جهت نمایش به کدام View ارسال شود.

کُدایگنایتر

کُدایگنایتر (به انگلیسیCodeIgniter ) یک چارچوب نرم‌افزاری تحت وب متن‌باز است که برای ساختِ وب‌گاه‌های پویا به‌کار می‌رود. این فریم‌ورک که با زبان پی‌اچ‌پی نوشته شده‌است کار توسعهٔ نرم‌افزار را در سنجش با کدنویسی از آغاز شتاب می‌بخشد. این شتاب‌بخشی توسط کتابخانه‌های این فریم‌ورک انجام می‌شود که بسیاری از آنها کارهای رایج را به‌سادگی انجام می‌دهند.

ویژگی‌ها

  • پشتیبانی از چندین پایگاه‌داده
  • دستیابی به پایگاه داده از طریق  ORM
  • مدیریت SESSION
  • اعتبارسنجی داده و فُرم
  • کش‌گذاری همهٔ صفحه
  • کلاس قالب‌گذار
  • پشتیبانی از افزودن کلاس، افزونه و HOOKS

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

  • سازگاری با PHP ۴. به‌کارگیری PHP۵ توانایی زنجیرسازی متدها را فراهم می‌کند.
  • کد بسیار سبک
  • نصب و ساختار پوشه‌های آسان
  • ثبت خطاها
  • رهیابی انعطاف‌پذیر ِ URIها

همچنین دیگر ویژگی‌هایی را ارایه می‌کند که هنوز در دیگر فریم‌ورک‌ها به طور پیش‌گزیده ارایه نشده‌است.

  • امنیت و پالایش XSS
  • کلاس فرستادن ایمیل که از پیوست‌ها، ایمیل‌های HTML ای یا متنی، پروتکل‌هایی چون SMTP، sendmail و Mail پشتیبانی می‌کند.
  • کتابخانه دستکاری تصویر (کارهایی چون: بریدن، چرخاندن، تغییر اندازه دادن و …). پشتیبانی از GD، ImageMagic  و …
  • کلاس بارکننده  فایل
  • کلاس FTP
  • بومی‌سازی
  • صفحه‌بندی
  • رمزگذاری داده
  • کلاس تقویم
  • کلاس User Agent (تشخیص مرورگر)
  • کلاس رمزگذاری فایل‌های Zip
  • ساخت URLهای کاربرپسند

کتابخانه‌ای بزرگ از helperها

ساختار پوشه در CI

شاختار پوشه های CI بشرح زیر میباشد:

  • Application

فایل های نرم افزار

  • Controllers

کلاس ها. که در شکل گیری URL ها نقش دارند.

  • Models

مدل ها. کلاس های ارتباط با پایگاه داده

  • View

فایل های نمایشی (HTML)

  • Config

کلاس های پیکربندی.

  • Libraries

کتابخانه های شخصی که توسط برنامه نویس نوشته داده شده

  • Languages

امکان تعریف فایل عای ترجمه

  • Errors

صفحات خطا

  • System

پوشه سورس CI

  • Core

فایل های اصلی و پایه

  • Database

درایور های ارتباط با پایگاه داده

  • Helpers

کلاس کمکی

  • libraries

کتابخانه ها

۳ پوشه اصلی و کلیدی نرم افزار در عکس زیر نمایش داده شده است.

002

کلاس های کنترلر

URLهای تولید شده بوسیله ی CodeIgniter تمیز هستند و برای موتورهای جستجو مناسب می باشند. بجای استفاده از «Query String» استاندارد، از URLهایی مانند زیر استفاده می کند:

example.ir/news/article/123

آدرسی بصورت زیر را

http://sample.com/index.php/ClassName/FunctionName /parameter

در نظر بگیرید، ClassName  اسم کلاس و FunctionName اسم متد و parameter شامل پارامتر ارسالی خواهد بود.

ب عنوان مثال:

 

 

برای فراخوانی  متد index باید آدرس زیر را فراخوانی کرد.

 http://sample.com/index.php/test_class /index

برای صدا کردن متد view  و ارسال پارامتر (به عنوان مثال عدد ۱۲۳) باید آدرس

 http://sample.com/index.php/ test_class /view/123

را فراخوانی کرد.

نکته: به ازای تمامی متد های کلاس test_class متد  __construct  همیشه اجرا خواه شد. لذا از این متد میتوان برای تصدیق هویت و مقداردهی اولیه استفاده کرد.

کلاس های کنترلر

URLهای تولید شده بوسیله ی CodeIgniter تمیز هستند و برای موتورهای جستجو مناسب می باشند. بجای استفاده از «Query String» استاندارد، از URLهایی مانند زیر استفاده می کند:

example.ir/news/article/123

آدرسی بصورت زیر را

http://sample.com/index.php/ClassName/FunctionName /parameter

در نظر بگیرید، ClassName  اسم کلاس و FunctionName اسم متد و parameter شامل پارامتر ارسالی خواهد بود.

ب عنوان مثال:

 

 

برای فراخوانی  متد index باید آدرس زیر را فراخوانی کرد.

 http://sample.com/index.php/test_class /index

برای صدا کردن متد view  و ارسال پارامتر (به عنوان مثال عدد ۱۲۳) باید آدرس

 http://sample.com/index.php/ test_class /view/123

را فراخوانی کرد.

نکته: به ازای تمامی متد های کلاس test_class متد  __construct  همیشه اجرا خواه شد. لذا از این متد میتوان برای تصدیق هویت و مقداردهی اولیه استفاده کرد.

ادامه

نظرات کاربران

بالا