در این آموزش به معرفی امکانات فریم ورک کدایگنایتر می پردازیم.
امکانات 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: این پوشه شامل فایلهای هر اپلیکیشنی است که قصد داریم با فریمورک مورد بحث توسعه دهیم. فایلهای پروژه ما باید در این پوشه ایجاد شوند.
محتویات پوشهی Application:
این پوشه شامل چندین زیرپوشه بوده که هر کدام به منظور نگهداری نوع خاصی از کلاسها یا فایلها به کار میروند.
Cache – همانطور که از نام این پوشه پیداست، به منظور نگهداری فایلهای موقت کش به کار میرود.
Config – این پوشه حاوی فایلهای پیکربندی است. شما میتوانید فایلهای پیکربندی مخصوص به خود را نیز در این پوشه ایجاد کنید یا فایلهای موجود را با توجه به نیاز خود ویرایش کنید.
Controllers – این پوشه حاوی فایلهای کنترلری است که شما قصد دارید ایجاد کنید. این پوشه یکی از مهمترین پوشهها در حین توسعه اپلیکیشنهای تحت وب با Codeigniter است.
Core – این پوشه حاوی کلاسهایی است فایلهای هستهی اصلی فریمورک یاد شده را گسترش میدهند. به عنوان مثال اگر بخواهید کلاس کنترلر اصلی فریمورک مورد بحث کار خاصی را انجام دهد که به صورت پیشفرض قادر به انجام آن نیست، میتوانید در این پوشه کلاس مورد نظرتان را ایجاد کرده و سپس codeigniter این کلاس را به صورت خودکار در پروژهی شما اجرا خواهد کرد.
Helpers – به صورت پیشفرض این پوشه خالی است و شما میتوانید به منظور ساختن Helper های اختصاصی خود از آن استفاده کنید و در واقع هلپرهای خود را باید در این پوشه قرار دهید.
Hooks – این پوشه حاوی Hook ها است. در مورد هوکها در بخشهای آتی توضیحات بیشتری خواهیم داد چراکه در آموزش پایه کاربرد چندانی نخواهد داشت.
Language – این پوشه حاوی فایلهای زبان است. این مورد وقتی کاربردی خواهد بود که نیاز به توسعهی وبسایتهای چند زبانه داشته باشید. حتی در صورتی که از یک زبان استفاده میکنید توصیه میکنیم فایلهای زبان آن را ایجاد کنید تا تمرین خوبی برای پروژههای بعدی شما باشد.
Libraries – این پوشه به منظور ایجاد فایلهای سفارشی شما به کار میرود.
Logs – این پوشه اطلاعات مربوط به فایلهای لاک را شامل میشود.
Models – فایلهای مدل پروژه خود را باید در این پوشه ایجاد کنید.
Third_party – شامل ابزارهای شخصثالث برای استفاده در پروژه میشود.
Views – شامل فایلهای نما و در واقع رابط کاربری پروژه میشود.
- System: این پوشه حاوی فایلهای هستهی فریمورک یاد شده است و ما با این پوشه فعلا کاری نداریم.
محتویات پوشهی System:
این پوشه حاوی کدهای هستهی Codeigniter، کتابخانهها، هلپرها و دیگر فایلهایی است که به آسان سازی کدنویسی برای توسعهدهندگان کمک میکنند. این کتابخانهها و هلپرها در طی توسعهی اپلیکیشنهای تحت وب اجرا شده و مورد استفاده قرار میگیرند. این پوشه شامل تمامی کدهای اصلی فریمورک یاد شده بوده که به صورت سازماندهیشده در چند زیر پوشه قرار داده شدهاند.
Core – این پوشه شامل کلاسهای هستهی اصلی CodeIgniter میشود. هیچ کدی را در این بخش نباید ویرایش کرد. تمام کارهایی که شما انجام میدهید باید در پوشهی Application باشد. حتی اگر قصد دارید تا کلاسهای هسته فریمورک را گسترش دهید، در این شرایط باید اینکار را با hook انجام دهید. همانطور که در بالا اشاره کردیم، hooks یکی از زیرپوشههای Application است.
Database – این پوشه حاوی درایورهای هستهی بانک داده و دیگر ابزارهای مورد نیاز برای کار با بانکهای اطلاعاتی است.
Fonts – این پوشه حاوی اطلاعات و ابزارهای مرتبط با فونتها است.
Helpers – پوشهی Helpers هم شامل کلاسهای هلپر استاندارد فریمورک CodeIgniter است. (هلپرهایی از جمله تاریخ، کوکی و URL)
Language – این پوشه حاوی فایلهای زبان است که فعلا با آنها کاری نداریم.
Libraries – این پوشه نیز حاوی کتابخانههای استاندارد CodeIgniter است. از جمله این کتابخانهها میتوان به ایمیل، تقویمها، آپلود فایل و … اشاره کرد. شما میتوانید کتابخانههای خاص خود را ایجاد کرده یا کتابخانههای جاری را گسترش دهید یا حتی آنها را جایگزین کنید، اما چنین مواردی باید در پوشهی application/libraries قرار داده شوند و نه در زیر پوشهی Libraries در پوشهی System.
در این ویدئو با امکانات Codeigniter بیشتر آشنا خواهید شد.