خانه / برنامه نویسی / آموزش فریم ورک Codeigniter – جلسه دوم: آشنایی با ساختار فریم‌ ورک
19401_4ff6_8

آموزش فریم ورک Codeigniter – جلسه دوم: آشنایی با ساختار فریم‌ ورک

اگر مطالب جلسه‌ی قبل را به خوبی مطالعه کرده‌ باشید، حتما به خاطر دارید که گفتیم در داخل پوشه‌ی htdocs محل نصب نرم‌افزار سرور مجازی Xampp، یک پوشه به اسم codei بسازید و محتویات فریم‌ورک Codegniter را در آن کپی کنید. همچنین با انجام یکسری تنظیمات اولیه در این فریم‌ورک آشنا شدیم. اما پیش از ادامه، با اموزشاپ همراه شوید تا شما را با ساختار دقیق و امکانات این فریم‌ورک آشنا کنیم.

امکانات Codeigniter:

CodeIgniter یک فریم‌ورک برای توسعه اپلیکیشن‌های تحت وب به زبان پی‌اچ‌پی است که به صورت متن باز ارائه شده و این یعنی می‌توانید کدهای فریم‌ورک یاد شده را به دلخواه و بر اساس نیاز خود تغییر دهید. اگر پی‌اچ‌پی را به خوبی بشناسید، در این شرایط یادگیری و کار با CodeIgniter برای شما بسیار آسان‌تر خواهد بود. همانطور که در جلسه‌ی قبل نیز گفتیم، فریم‌ورک در واقع شامل مجموعه‌ای از کلاس‌های از پیش آماده‌ است که با استفاده از آن‌ها می‌توان در کدنویسی صرفه‌جویی کرده و کد استانداردتر و بهتری را تولید کنیم. اما برخی از مهم‌ترین قابلیت‌های فریم‌ورک CodeIgniter را در زیر برای شما لیست کرده‌ایم:

  • این سیستم بر پایه‌ی ساختار Model-View-Controller یا به اختصار MVC کار می‌کند
  • اجرای روان به دلیل سبک بودن کد
  • دارای کلاس‌های مخصوص کار با دیتابیس با امکانات کامل با پشتیبانی از چندین پلتفرم
  • پشتیبانی از تولیدکننده پرس‌وجو (Query Builder) در دیتابیس
  • اعتبارسنجی فرم و داده‌ها
  • امنیت و فیلترینگ XSS
  • مدیریت سشن‌ها
  • کلاس‌ ارسال ایمیل با پشتیبانی از فایل‌های ضمیمه، ایمیل‌های متنی و HTML، پشتیبانی از چندین پروتکل (از جمله sendmail، SMTP، و Mail) و …
  • ابزار کار با تصویر (برش، تغییر اندازه، چرخاندن و …). پشتیبانی از GD، ایمیج‌مجیک و NetPBM
  • کلاس آپلود فایل
  • کلاس FTP
  • امکان محلی‌سازی
  • صفحه‌بندی
  • رمزنگاری داده‌ها
  • بنچمارکینگ
  • سیستم کش کل صفحه
  • ثبت خطا
  • پروفایل برنامه
  • کلاس تقویم
  • کلاس User Agent
  • کلاس زیپ
  • کلاس موتور قالب (تمپلیت اینجین)
  • کلاس ترک‌بک
  • کتابخانه‌‌ی XML-RPC
  • کلاس تست واحد
  • آدرس‌های URL سازگار با موتورهای جستجو
  • امکان اعمال تغییرات دلخواه در URI
  • پشتیبانی از کلاس‌ها و Hook اضافه
  • کتابخانه‌ای عظیم شامل توابع Helper

ساختار اپلیکیشن‌ در فریم‌ورک Codeigniter

ساختار کلی هر اپلیکیشنی که بر پایه‌ی CodeIgniter توسعه داده می‌شود به صورت شماتیک در زیر نشان داده شده است.

  • همانطور که در تصویر بالا مشاهده می‌کنید، هر درخواستی که به CodeIgniter ارسال می‌شود ابتدا به صفحه‌یindex.php خواهد رفت.
  • در گام دوم، روتینگ (Routing) تصمیم می‌گیرد که درخواست را به مرحله‌ی ۳ برای کش کردن ارسال کند یا آن را برای بررسی‌های امنیتی به مرحله‌ی ۴ منتقل کند.
  • اگر صفحه‌ی درخواستی از قبل در سیستم کش‌ وجود داشته باشد، آنگاه روتینگ درخواست را به مرحله‌ی ۳ ارسال کرده و پاسخ تولید شده به سمت کاربر ارسال خواهد شد.
  • اگر صفحه‌ی درخواست شده در سیستم کش وجود نداشته باشد، آنگاه روتینگ درخواست آن صفحه را برای بررسی‌های امنیتی به مرحله‌ی ۴ ارسال می‌کند.
  • پیش از ارسال درخواست به کنترلر اپلیکیشن، امنیت داده‌های ثبت شده بررسی می‌شود. پس از بررسی‌های امنیتی، کنترلر اپلیکیشن، مدل‌ها، کتابخانه‌ها، هلپرها، پلاگین‌ها و اسکریپت‌های مورد نیاز را اجرا کرده و آن‌ها را به سمت مدل ارسال می‌کند.
  • ویوو یا نما، صفحه را با داده‌های موجود رندر کرده و آن‌ها را برای کش کردن ارسال می‌کند. اگر صفحه‌ی درخواست شده از قبل در سیستم کش موجود نباشد، سیستم کشینگ آن را کش خواهد کرد تا در فراخوانی‌های بعدی این صفحه، اجرای آن با سرعت بیشتری انجام شود.

پوشه‌های فریم‌ورک:

پوشه‌های اصلی فریم‌ورک Codeigniter به صورت زیر است:

  • Application: این پوشه شامل فایل‌های هر اپلیکیشنی است که قصد داریم با فریم‌ورک مورد بحث توسعه دهیم. فایل‌های پروژه ما باید در این پوشه ایجاد شوند.
  • System: این پوشه حاوی فایل‌های هسته‌ی فریم‌ورک یاد شده است و ما با این پوشه فعلا کاری نداریم.

محتویات پوشه‌ی Application:

این پوشه شامل چندین زیرپوشه بوده که هر کدام به منظور نگه‌داری نوع خاصی از کلاس‌ها یا فایل‌ها به کار می‌روند.

  • Cache – همانطور که از نام این پوشه پیداست، به منظور نگه‌داری فایل‌های موقت کش به کار می‌رود.
  • Config – این پوشه حاوی فایل‌های پیکربندی است. شما می‌توانید فایل‌های پیکربندی مخصوص به خود را نیز در این پوشه ایجاد کنید یا فایل‌های موجود را با توجه به نیاز خود ویرایش کنید.
  • Controllers – این پوشه حاوی فایل‌های کنترلری است که شما قصد دارید ایجاد کنید. این پوشه یکی از مهم‌ترین پوشه‌ها در حین توسعه اپلیکیشن‌های تحت وب با Codeigniter است.
  • Core – این پوشه حاوی کلاس‌هایی است فایل‌های هسته‌ی اصلی فریم‌ورک یاد شده را گسترش می‌دهند. به عنوان مثال اگر بخواهید کلاس کنترلر اصلی فریم‌ورک مورد بحث کار خاصی را انجام دهد که به صورت پیش‌فرض قادر به انجام آن نیست، می‌توانید در این پوشه کلاس مورد نظرتان را ایجاد کرده و سپس codeigniter این کلاس را به صورت خودکار در پروژه‌ی شما اجرا خواهد کرد.
  • Helpers – به صورت پیش‌فرض این پوشه خالی است و شما می‌توانید به منظور ساختن Helper های اختصاصی خود از آن استفاده کنید و در واقع هلپرهای خود را باید در این پوشه قرار دهید.
  • Hooks – این پوشه حاوی Hook ها است. در مورد هوک‌ها در بخش‌های آتی توضیحات بیشتری خواهیم داد چراکه در آموزش پایه کاربرد چندانی نخواهد داشت.
  • Language – این پوشه حاوی فایل‌های زبان است. این مورد وقتی کاربردی خواهد بود که نیاز به توسعه‌ی وب‌سایت‌های چند زبانه داشته باشید. حتی در صورتی که از یک زبان استفاده می‌کنید توصیه می‌کنیم فایل‌های زبان آن را ایجاد کنید تا تمرین خوبی برای پروژه‌های بعدی شما باشد.
  • Libraries – این پوشه به منظور ایجاد فایل‌های سفارشی شما به کار می‌رود.
  • Logs – این پوشه اطلاعات مربوط به فایل‌های لاک را شامل می‌شود.
  • Models – فایل‌های مدل پروژه خود را باید در این پوشه ایجاد کنید.
  • Third_party – شامل ابزارهای شخص‌ثالث برای استفاده در پروژه می‌شود.
  • Views – شامل فایل‌های نما و در واقع رابط کاربری پروژه می‌شود.

محتویات پوشه‌ی System:

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

  • Core – این پوشه شامل کلاس‌های هسته‌ی اصلی CodeIgniter می‌شود. هیچ کدی را در این بخش نباید ویرایش کرد. تمام کارهایی که شما انجام می‌دهید باید در پوشه‌ی Application باشد. حتی اگر قصد دارید تا کلاس‌های هسته‌ فریم‌ورک را گسترش دهید، در این شرایط باید این‌کار را با hook انجام دهید. همانطور که در بالا اشاره کردیم، hooks یکی از زیرپوشه‌های Application است.
  • Database – این پوشه حاوی درایورهای هسته‌ی بانک داده و دیگر ابزارهای مورد نیاز برای کار با بانک‌های اطلاعاتی است.
  • Fonts – این پوشه حاوی اطلاعات و ابزارهای مرتبط با فونت‌ها است.
  • Helpers – پوشه‌ی Helpers هم شامل کلاس‌های هلپر استاندارد فریم‌ورک CodeIgniter است. (هلپرهایی از جمله تاریخ، کوکی و URL)
  • Language – این پوشه حاوی فایل‌های زبان است که فعلا با آن‌ها کاری نداریم.
  • Libraries – این پوشه نیز حاوی کتابخانه‌های استاندارد CodeIgniter است. از جمله این کتابخانه‌ها می‌توان به ایمیل، تقویم‌ها، آپلود فایل و … اشاره کرد. شما می‌توانید کتابخانه‌های خاص خود را ایجاد کرده یا کتابخانه‌های جاری را گسترش دهید یا حتی آن‌ها را جایگزین کنید، اما چنین مواردی باید در پوشه‌ی application/libraries قرار داده شوند و نه در زیر پوشه‌ی Libraries در پوشه‌ی System.

از آنجا که دانستن آنچه در این مطلب بیان شد برای شروع کار با فریم‌ورک CodeIgniter ضروری به نظر می‌رسد ما نیز تصمیم گرفتیم به منظور استانداردتر کردن روش‌های آموزشی خود ابتدا به بیان چنین پیش‌نیازهایی بپردازیم. در جلسات آینده رفته رفته مباحث تخصصی‌تر شده و نهایتا وارد دنیای کدنویسی با استفاده از فریم‌ورک خواهیم شد.

نظرات  شما در این مورد چیست؟

پاپ کده

درباره‌ی majidkingkm

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *