یکی از مهمترین اجزای فریمورک Codeigniter کتابخانههای آن است. این فریمورک شامل تعداد زیادی کتابخانهی از پیش آماده بوده که به صورت غیر مستقیم میتواند سرعت توسعه و ساخت یک اپلیکیشن تحت وب را افزایش دهد. در ادامه با زومیت همراه باشید تا شما را با کتابخانهها در فریمورک مورد بحث آشنا کنیم.
همانطور که در جلسات پیشین گفته بودیم، کتابخانههای سیستمی فریمورک در مسیر system/libraries قرار گرفتهاند. برای استفاده از هر کدام از کتابخانههای موجود در این مسیر باید ابتدا آنها را بارگذاری کنیم. بدین منظور میتوان از کدی شبیه به کد زیر استفاده کرد:
$this->load->library('class name');
کد بالا به جای عبارت class name باید نام کتابخانهی مورد نظری که قصد بارگذاریاش را داریم، وارد کنیم. اگر بخواهیم چندین کتابخانه را به صورت همزمان با یک دستور بارگذاری کنیم، میتوان این کار را با ارسال آرگومان به تابع ()library انجام داد. به عنوان مثال با استفاده از کد زیر دو کتابخانهی email و table را به صورت همزمان و با یک خط کد بارگذاری کردهایم.
$this->load->library(array('email', 'table'));
کلاسهای کتابخانه
هر کدام از کلاسهایی که در مسیر system/libraries قرار گرفتهاند، شمال توابع مختلفی هستند که کار توسعه اپلیکیشنهای تحت وب را برای ما بسیار آسان و ساده میکنند. در جدول زیر لیستی از پر استفادهترین کتابخانههای فریمورک Codeigniter را به همراه توضیحات آنها مشاهده میکنید.
شماره | کلاس کتابخانه و توضیحات |
---|---|
1 | Benchmarking Class کلاس بنچمارکینگ همیشه در حال فعالیت بوده و فاصلهی زمانی بین هر دو زمان مورد نظری که به آن داده شود را محاسبه میکند. |
2 | Caching Class این کلاس از تمام صفحات سایت، نسخهی کش تهیه میکند تا دسترسی به آن صفحات سریعتر و آسانتر انجام شود. |
3 | Calendaring Class با استفاده از این کلاس میتوانید به صورت داینامیک، تقویمهای جدیدی را ایجاد کنید. |
4 | Shopping Cart Class این کلاس همانطور که از نامش پیداست به منظور افزودن یا حذف آیتم به سبد خرید آنلاین به کار گرفته میشود. آیتمها در Session ها ذخیره شده و تا زمانی که کاربر وبسایت شما را مرور میکند به صورت فعال باقی خواهند ماند. |
5 | Config Class تنظیمات مربوط به پیکربندی را میتوان با استفاده از این کلاس دریافت کرد. این کلاس نیز به صورت خودکار فعال است. |
6 | Email Class این کلاس توابع مختلفی را برای کار با ایمیل در اختیار شما قرار میدهد که از جمله میتوان به ارسال یا پاسخ به ایمیلها اشاره کرد. |
7 | Encryption Class این کلاس دو روش مختلف را به منظور رمزنگاری دادهها در اختیار شما قرار میدهد. |
8 | File Uploading Class این کلاس توابع لازم برای آپلود فایل را در اختیار توسعهدهندگان قرار میدهد. شما میتوانید تنظیمات مختلفی را برای این کلاس تعریف کنید که از جمله این تنظیمات میتوان به تعیین نوع فایلهای مجاز، برای آپلود شدن، حجم فایلها و ... اشاره کرد. |
9 | Form Validation Class این کلاس توابع لازم برای اعتبارسنجی مقادر وارد شده در فرمها را در اختیارتان میگذارد. |
10 | FTP Class این کلاس نیز شامل توابع مختلفی برای کار با FTP است. از جمله قابلیتهای این کلاس میتوان به امکان انتقال یا حذف، تغییر نام یا جابجا کردن فایلها به سرور اشاره کرد. |
11 | Image Manipulation Class این کلاس امکاناتی را برای کار با تصاویر در اختیار شما قرار میدهد. از جمله قابلیتهای این کلاس میتوان به تغییر اندازه، ایجاد تصویر بندانگشتی، برش، چرخاندن، نوشتن متن واترمارک و ... اشاره کرد. |
12 | Input Class این کلاس شامل پردازشهای از قبل انجام شده برای دادههای ورودی است تا از این طریق امنیت بیشتری برقرار شود. |
13 | Language Class این کلاس برای بینالمللی سازی اپلیکیشن تحت وب شما بکار میرود. در واقع برای ایجاد سایتهای چند زبانه میتوانید از این کلاس بهره بگیرید. |
14 | Loader Class این کلاس میتواند فایلهای مختلفی از جمله، فایلهای ویو یا نما، درایورها، هلپرها، مدلها و ... را در فریمورک بارگذاری کند. |
15 | Migrations Class این کلاس شامل توابعی است که با استفاده از آنها میتوان دادههای موجود در یک دیتابیس را به دیتابیسهای دیگر منتقل کرد. |
16 | Output Class این کلاس خروجی را به مرورگر ارسال کرده و صفحهی وب مورد نظر را کش میکند. |
17 | Pagination Class این کلاس قابلیتهای مربوط به صفحهبندی را برای صفحات وب در اختیار توسعه دهندگان قرار میدهد. |
18 | Template Parser Class این کلاس میتواند از متون ساده به منظور نمایش متغیرهای مختلف در فایلهای نما یا ویو استفاده کند. با استفاده از این کلاس میتوان متغیرهای ساده و نیز متغیرهای پیچیدهتر مثل آرایهها را در فایل ویو به نمایش درآورد. |
19 | Security Class این کلاس شامل قابلیتهای امنیتی چون فیلترینگ XSS، CSRF و ... است. |
20 | Session Library این کلاس شامل توابعی برای مدیریت کامل سشنها در اپلیکیشنهای تحت وب شما است. |
21 | HTML Table این کلاس برای ایجاد خودکار جداول بر اساس نتایج دریافت شده از بانکهای اطلاعاتی یا یک آرایه به کار میرود. |
22 | Trackback Class این کلاس توابعی دارد که شما را قادر میسازد تا دادههای ترکبک مورد نظر خود را دریافت و ارسال کنید. |
23 | Typography Class کلاس تایپوگرافی متدهایی دارد که برای فرمتبندی متون میتوان از آنها بهره برد. |
24 | Unit Testing Class این کلاس شامل توابعی است که میتواند واحدهای مختلف اپلیکیشن شما را تست کرده و سپس نتیجه این تست را ایجاد کند. |
25 | URI Class اگر از URI Routng استفاده میکنید این کلاس شامل متدهایی است که به شما کمک میکند تا اطلاعات را از رشتههای متنی URI بیرون بکشید. |
26 | User Agent Class این کلاس نیز شامل توابعی است که به شما کمک میکند تا اطلاعاتی در مورد مرورگر، دستگاه موبایل یا رباتی که وبسایت را مشاهده میکند بدست آورید. علاوه بر این میتوانید اطلاعات مربوط به وبسایت رجوع کننده، زبان و اطلاعات مربوط به نوع کاراکتربندی کاربر را با استفاده از این کلاس بدست آوردید. |
27 | XML-RPC and XML-RPC Server Classes کلاسهای XML-RPC در فریمورک Codeigniter امکان ارسال درخواست به دیگر سرورها را برای شما محیا میکنند. همچنین میتوانید سرور XML-RPC مخصوص به خود را برای دریافت درخواست از جانب دیگران ایجاد کنید. |
28 | Zip Encoding Class این کلاس برای ایجاد فایلهای فشردهی زیپ از دادههای شما مورد استفاده قرار میگیرد. |
ساختن کتابخانهها
فریمورک Codeigniter شامل کتابخانههای بسیار قدرتمندی است که میتوانید آنها را در مسیر system/libraries مشاهده کنید. اما این فریمورک فقط به کتابخانههای پیشفرض محدود نشده و شما میتوانید کتابخانههای مورد نظر خود را نیز ایجاد کرده و به آن اضافه کنید. کتابخانههای ایجاد شده توسط شما باید در مسیر application/libraries قرار بگیرند. برای ایجاد کتابخانهی جدید میتوانید از سه روش اقدام کنید.
- ایجاد یک کتابخانه کاملا جدید
- ارثبری از کتابخانههای پیشفرض فریمورک
- جایگزینی یک کتابخانهی جدید با کتابخانههای پیشفرض
ایجاد یک کتابخانهی کاملا جدید
- هنگام ساختن یک کتابخانهی جدید باید نکات زیر را در نظر داشته باشید:
- نام فایل کلاس شما باید با یک حرف انگلیسی بزرگ شروع شود. مثال: Myzoomit.php
- نام خود کلاس نیز باید با یک حرف بزرگ انگلیسی شروع شود. مثال: Myzoomit
- نام کلاس و نام فایل آن باید با یکدیگر یکسان باشند.
به عنوان مثال ما یک کتابخانه به نام Myzoomit.php در زیر ایجاد کردهایم.
Myzoomit.php
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); class Myzoomit { public function some_function() { } } /* End of file Myzoomit.php */
بارگذاری کلاس ایجاد شده
برای بارگذاری کتابخانههای ایجاد شدهی خود میتوانید از کدی مثل کد زیر استفاده کنید.
$this->load->library(‘myzoomit’);
نام myzoomit در واقع نام کتابخانهی شما خواهد بود و باید آن را با حروف کوچک بنویسید. فرقی نمیکند که در نام فایل و نام خود کتابخانهی ایجاد شده کدام حروف را بزرگ نوشتهاید و در هنگام بارگذاری این کتابحانههای باید تمام حروف نام انها را با حروف کوچک تایپ کنید. همچنین پسوند php. را نیز در انتهای نام کلاس نمینویسیم. پس از بارگذاری کلاس مورد نظر میتوانید مثل کد به توابع داخلی آن کلاس دسترسی داشته باشید.
$this->myzoomit->some_function();
ارثبری از کتابخانههای پیشفرض فریمورک
گاهی نیاز پیدا میکنید تا قابلیتهای مورد نظر خود را به کتابخانههایی که به صورت پیشفرض در فریمورک Codeigniter وجود دارند اضافه کنید. بدین منظور میتوانید کتابخانهی جدیدی ایجاد کرده و از کلاس مورد نظر خود ارثبری کنید تا علاوه بر متدهای پیشفرض آن کلاس، بتوانید متدهای جدیدی را برای کتابخانهی مورد نظر تعریف کنید. بدین منظور باید در انتهای نام کلاس جدید خود از یکی از کلاسهای پیشفرض فریمورک ارثبری کنید.
- به مثال زیر توجه کنید. ما در اینجا قصد داریم کتابخانهی جدیدی ایجاد کنیم که از کتابخانهی Email ارثبری میکند.
Class MY_Email extends CI_Email { }
در مثال بالا کلاس MY_Email از کلاس ایمیل پیشفرض فریمورک مورد بحث یعنی CI_Email ارثبری کرده است. این کتابخانه را میتوان مثل سایر کتابخانهها در فریمورک Codeigniter بارگذاری کرد. نام فایل مثال بالا نیز My_Email.php خواهد بود.
جایگزینی کتابخانهی جدید با کتابخانهی پیشفرض
گاهی اوقات نیز شرایطی پیش میآید که نیاز پیدا میکنید تا از کتابخانههای پیشفرض به روشی غیر از روش اصلی ارائه شده توسط فریمورک بهره ببرید و در واقع باید روش مخصوص خود را جایگزین کنید. این کار با جایگزینی کتابخانهی جدید با کتابخانههای پیشفرض امکانپذیر خواهد بود. بدین منظور باید کلاس جدیدی ایجاد کرده و نام آن را دقیقا مشابه نام کتابخانهی پیشفرض مورد نظر تعیین کنید. به عنوان مثال اگر قصد دارید کلاس جدیدی را با کلاس Email جایگزین کنید، در این شرایط باید از کد زیر استفاده کنید. سپس باید این کد را در فایلی به نام Email.php ذخیره کرده و نام کلاس را نیز CI_Email تعیین کنید.
Email.php
Class CI_Email { }
در این جلسه شما به طور کامل با کتابخانههای فریمورک Codeigniter آشنا شدید. در جلسات آینده با سایر اجزای مهم این فریمورک به طور کامل آشنا خواهید شد.
لطفا نظرات و سوالات خود را نیز در بخش دیدگاهها با زومیت و سایر کاربران به اشتراک بگذارید.