آشنایی با کدایگنایتر- بخش دوم
فایل های پیکربندی
در CI[1] میتوان برای همه چیز فایل [۲]config تعریف کرد و مقادیر آن را در مواقع لازم استفاده کرد.
پیکربندی اصلی
فایل config.php موجود در پوشه application/config شامل تمامی مقادیر پیکربندی لازم میباشد و ما نیز برای سهولت دسترسی به مقادیر موردنظز خودمان از همین فایل استفده میکنیم که البته منطقی نیست ]و باید در فایل جداگانه ذخیره، سپس در نرم افزار فراخوانی شود[،
به عنوان مثال کد زیر را به انتهای فایل config.php اضافه میکنیم:
1 |
$config['allowed_types'] = 'jpg|doc|docx|pdf|xlsx|xls|rar|bmp|png'; |
و در مواقع لازم آن را با دستور زیر فراخوانی کنیم.
1 |
$this->config->item('allowed_types ') |
پیکربندی پایگاه داده
در فایل database.php میتوان طرز اتصال به پایگاه داده را بصورت زیر مشخص کرد.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
$active_group = 'default'; اتصال پیش فرض $db['default']['hostname'] = '127.0.0.1'; آدرس سرور پایگاه داده $db['default']['username'] = ' '; نام کاربری $db['default']['password'] = ' '; گذرواژه $db['default']['database'] = ' '; نام پایگاه داده $db['default']['dbdriver'] = 'sqlsrv' یا 'mysql' یا ' mysql i'; درایور اتصال به پایگاه داده $db['default']['dbprefix'] = ''; پیشوند نام جداول $db['default']['pconnect'] = FALSE; $db['default']['db_debug'] = TRUE; $db['default']['cache_on'] = FALSE; $db['default']['cachedir'] = ''; $db['default']['char_set'] = 'utf-8'; character_set $db['default']['dbcollat'] = 'utf8_general_ci'; collation $db['default']['swap_pre'] = ''; $db['default']['autoinit'] = TRUE; $db['default']['stricton'] = FALSE; |
پیکربندی autoload
برای بارگذاری فایل های library، helper و model بجای هر بار لود کردن آن در هر استفاده، میتوان آنها را در فایل autoload.php در قسمت مخوص، ثبت کرد تا در هر اجرای نرم افزار بارگذاری شود. نحوه لود کردن فایل های library، helper و model بعدا توضیح داده خواهد شد.
به عنوان مثال کد زیر ۳ کتابخانه “session”, “form_validation”, “database” را بارگذاری میکند و هرجای نرم افزار بدون بارگذاری آنها میتوان از آنها استفاده کرد.
1 |
$autoload['libraries'] = array("session", "form_validation", "database"); |
پیکربندی مسیریابی
این فایل شامل اطلاعاتی برای تعیین مسیر اولیه یا تغییر مسیر می باشد.
زمانی که ادرس وبسایت بدون قید هیچ کلاسی صورت میگرد، برای تعیین کنترلر پیش فرض از کد زیر استفاده میکنیم.
یعنی اگر آدرس بصورت http://sample.ir/index.php وارد شود، CI تصمیم بر اساس ‘default_controller’ تصمیم میگیرد که کدام کنترلر اجرا شود.
1 |
$route['default_controller'] = "dashboard"; |
کتابخانه ها
برای ایجاد قابلیت های جدید به کتابخانه[۳] های CI میتوان آنها را توسعه داد، ولی نیازی نیست فایل های موجود در پوشه system را دستکاری کرد. کافی است کلاسی هم نام با کلاس مورد نظرتان را ایجاد کنید و قبل از نام آن پیشوند MY_ را اضافه کنید. مانند مثال زیر:
1 2 3 4 5 6 7 |
class MY_Form_validation extends CI_Form_validation { function my_unique($str, $field) { } } |
CI_Form_validation نام کلاس سیستمی و MY_Form_validation شامل تغییرات ما خواهد بود. در اینجا ما متد my_unique را به کلاس CI_Form_validation اضافه کردیم در حالی که سورس اصلی را دستکاری نکردیم.
ایجاد کتابخانه
میتوانیم برای استفاده شخصی، کتابخانه های جدیدی را ایجاد کنیم. در این صورت نیازی به extend کردن کلاس نیست. در مثال زیر ما کتابخانه جدیدی به اسم App_lib میسازیم:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
class App_lib { protected $CI; function __construct() { $this->CI = & get_instance(); } Function my_method(){ Return True; } } |
نکته: در جایی که کلاس ما از CI_Controller توسعه[۴] داده نمیشود، برای استفاده از کلاس ها و متدهایی که خود CI بارگذاری آنها را برعهده دارد، باید یک instance از CI_Controller بسازیم و با آن کار کنیم.به عنوان مثال، چنانچه بخواهیم از کد زیر:
1 |
$this->config->item('allowed_types ') |
در یک کتابخانه استفاده کنیم، باید به ترتیب زیر عمل کنیم
1 2 3 |
$this->CI = & get_instance(); $this->CI->config->item('allowed_types '); |
که خط اول را متوان یکبار در __construct مقداردهی اولیه کرد.
فراخوانی کتابخانه
برای فراخوانی متدهای کتابخانه به ترتیب زیر عمل میکنیم:
1 2 3 |
$this->load->library("app_lib"); $this->app_lib->my_method(); |
[…] ادامه […]
[…] قبلی […]