مفاهیم پایه codeigniter

مقالات
Controller
کنترلر یک فایل کلاس ساده است. همانطور که از نامش پیداست ، این کل برنامه را توسط URI کنترل می کند.
ایجاد یک controller
ابتدا به پوشه application / controllers بروید. شما دو فایل index.html و Welcome.php در آنجا خواهید یافت. این پرونده ها همراه با CodeIgniter هستند.
این فایل ها را همانطور که هست نگه دارید. در همان مسیری با نام “Test.php” یک فایل جدید ایجاد کنید. کد زیر را در آن پرونده بنویسید –
1 |
<?php class Test extends CI_Controller { public function index() { echo "Hello World!"; } } ?> |
کلاس Test یک کلاس داخلی به نام CI_Controller را گسترش می دهد. هر زمان که بخواهید کلاس Controller خود را بسازید ، این کلاس باید توسعه یابد.
فراخوانی Controller
کنترل کننده فوق توسط URI به صورت زیر فراخوانی می شود –
1 2 |
http://www.your-domain.com/index.php/test |
بعد از index.php به عبارت “test” در URI فوق توجه کنید. این نشان دهنده نام کلاس Controller است. همانطور که نام Controller را “Test” قرار داده ایم ، پس از index.php در حال نوشتن “test” هستیم. نام کلاس باید با حرف بزرگ شروع شود اما هنگامی که آن Controller را با URI فراخوانی می کنیم باید حروف کوچک بنویسیم. سینتکس عمومی برای فراخوانی کنترلر به صورت زیر است –
1 2 |
http://www.your-domain.com/index.php/controller/method-name |
ایجاد و فراخوانی متند constructor در codeigniter
بیایید کلاس فوق را اصلاح کنیم و متد دیگری به نام “Hello” ایجاد کنیم.
1 2 3 4 5 6 7 8 9 10 11 12 |
<?php class Test extends CI_Controller { public function index() { echo "This is default function."; } public function hello() { echo "This is hello function."; } } ?> |
ما می توانیم کنترلر فوق را به سه روش زیر اجرا کنیم –
- http://www.your-domain.com/index.php/test
- http://www.your-domain.com/index.php/test/index
- http://www.your-domain.com/index.php/test/hello
پس از بازدید از اولین URI در مرورگر ، خروجی را همانطور که در تصویر زیر نشان داده شده است ، بدست می آوریم. همانطور که می بینید ، ما خروجی متد “index” را دریافت کردیم ، حتی اگر نام متد URI را نگذاشته باشیم. ما فقط از نام کنترل کننده در URI استفاده کرده ایم. در چنین شرایطی ، CodeIgniter متد پیش فرض را “index” می نامد.

با بازدید از URI دوم در مرورگر ، همان خروجی را می گیریم که در تصویر بالا نشان داده شده است. در اینجا ، ما متد name را به نام نام کنترل کننده در URI منتقل کرده ایم. از آنجا که نام ljn “index” است ، ما همان خروجی را می گیریم.
با بازدید از سومین URI در مرورگر ، خروجی را همانطور که در تصویر زیر نشان داده شده است ، دریافت می کنیم. همانطور که مشاهده می کنید ، ما در حال دریافت خروجی متد”Hello” هستیم زیرا “Hello” را به عنوان نام متد پس از نام “Test” کنترل کننده در URI گذرانده ایم.

نکاتی که باید بخاطر بسپارید
نام کلاس controller باید با یک حرف بزرگ شروع شود.
controller باید با حروف کوچک فراخوانی شود.
از نام متدی که هم نام کلاس پدر می باشد استفاده نکنید ، زیرا این عملکرد کلاس والدین را نادیده می گیرد.
Views
Views در codeigniter
این می تواند یک صفحه وب ساده یا پیچیده باشد ، که توسط controller فراخوانی می شود. صفحه وب ممکن است حاوی header, footer, sidebar و غیره باشد. View نمی تواند مستقیماً فراخوانی شود. اجازه دهید یک نمای ساده ایجاد کنیم. یک فایل جدید تحت application/views با نام “test.php” ایجاد کنید و کد داده شده زیر را در آن فایل کپی کنید.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<!DOCTYPE html> <html lang = "en"> <head> <meta charset = "utf-8"> <title>CodeIgniter View Example</title> </head> <body> CodeIgniter View Example </body> </html> |
همانطور که در تصویر زیر نشان داده شده ، کد application/controllers/test.php را تغییر دهید.
بارگذاری view
بارگذاری view در codeigniter
view را می توان با سینتکس زیر بارگذاری کرد –
1 |
$this->load->view('name'); |
جایی که نام فایل view است ، که در حال رندرینگ می باشد. اگر قصد دارید فایل مشاهده را در برخی از فهرست ها ذخیره کنید ، می توانید از دستور زیر استفاده کنید –
1 |
$this->load->view('directory-name/name'); |
لازم نیست پسوند را به عنوان php مشخص کنید ، مگر اینکه مورد دیگری غیر از .php استفاده شود.
متد index () متد view را فراخوانی می کند و “test” را به عنوان آرگومان برای view() پاس می دهد زیرا ما کدگذاری html را در فایل “test.php” تحت application/views/test.php.ذخیره کرده ایم.
1 2 3 4 5 6 7 8 |
<?php class Test extends CI_Controller { public function index() { $this->load->view('test'); } } ?> |
در اینجا خروجی کد بالا وجود دارد –

نمودار flowchart زیر نحوه کار همه چیز را نشان می دهد –

Model در codeigniter
کلاسهای مدل برای کار با اطلاعات موجود در پایگاه داده طراحی شده اند. به عنوان مثال ، اگر از CodeIgniter برای مدیریت کاربران در برنامه خود استفاده می کنید ، باید کلاس Model داشته باشید که شامل توابع برای درج ، حذف ، به روزرسانی و بازیابی اطلاعات کاربران است.
ایجاد کلاس Model
ایجاد کلاس Model در codeigniter
کلاسهای مدل در پوشه application/models ذخیره می شوند. کد زیر نحوه ایجاد کلاس مدل در CodeIgniter را نشان می دهد.
1 2 3 4 5 6 7 8 |
?php Class Model_name extends CI_Model { Public function __construct() { parent::__construct(); } } ?> |
Where Model_name نام کلاس مدل است که می خواهید ارسال کنید. هر کلاس مدل باید کلاس CodeIgniter’s CI_Model را به ارث برساند. حرف اول کلاس مدل باید با حرف بزرگ باشد. در زیر کد کلاس مدل کاربران آورده شده است.
1 2 3 4 5 6 7 8 9 |
<?php Class User_model extends CI_Model { Public function __construct() { parent::__construct(); } } ?> |
کلاس مدل فوق باید به عنوان User_model.php ذخیره شود. نام کلاس و نام فایل باید یکسان باشد.
بارگزاری Model در codeigniter
مدل را می توان درcontroller فراخوانی کرد. برای بارگذاری هر model می توان از کد زیر استفاده کرد.
1 2 |
$this->load->model('model_name'); |
جایی که model_name نام مدلی است که بارگیری می شود. پس از بارگذاری model ، می توانید متد آن را مانند تصویر زیر فراخوانی کنید.
1 2 |
$this->model_name->method(); |
مدل های Auto-loading
مدل های Auto-loading در codeigniter
ممکن است شرایطی وجود داشته باشد که شما در کل برنامه خود کلاس خاصی را بخواهید. در چنین شرایطی ، بهتر است که آن را به صورت خودکار بارگیری کنیم.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
/* | --------------------------------------------------------------- | Auto-Load Models | --------------------------------------------------------------- | Prototype: | | $autoload['model'] = array('first_model', 'second_model'); | | You can also supply an alternative model name to be assigned | in the controller: | | $autoload['model'] = array('first_model' => 'first'); */ $autoload['model'] = array(); |
همانطور که در شکل بالا نشان داده شده است ، نام مدلی را در آرایه ای که می خواهید بارگیری خودکار autoloaded انجام شود ، منتقل کنید و بارگیری می شود ، در حالی که سیستم در حالت اولیه قرار دارد و در کل برنامه قابل دسترس است.
Helper در codeigniter
همانطور که از نام آن پیداست ، به شما در ساخت سیستم کمک می کند. برای عملکردهای مختلف به function های کوچک تقسیم می شود. تعدادی helper در CodeIgniter موجود است که در جدول زیر ذکر شده است. ما نیز می توانیم Helper خود را بسازیم.
Helperها معمولاً در system/helpers, یا application/helpers directory. ذخیره می شوند.helper های سفارشی در دایرکتوری application/helpers و helper های سیستم در دایرکتوری system/helpers ذخیره می شوند. CodeIgniter ابتدا در دایرکتوری application/helpers شما جستجو می کند. اگر دایرکتوری وجود نداشت یا helper مشخص نشده است ، CodeIgniter در عوض ، در سیستم global دایرکتوری system/helpers/ شما جستجو می کند. هر helper ، خواه سفارشی باشد یا سیستم ، باید قبل از استفاده از آن بارگیری شود.
متداول ترین helper های استفاده شده در codeigniter
نام Helper | توضیحات Helper |
---|---|
Array Helper | پرونده Array Helper شامل توابعی است که به کار با آرایه ها کمک می کنند. |
CAPTCHA Helper | پرونده CAPTCHA Helper شامل توابعی است که به ایجاد تصاویر CAPTCHA کمک می کنند. |
Cookie Helper | پرونده Cookie Helper شامل توابعی است که به کار با کوکی ها کمک می کنند. |
Date Helper | فایل Date Helper شامل توابعی است که به شما در کار با تاریخ کمک می کند. |
Directory Helper | پرونده Directory Helper شامل توابعی است که در کار با دایرکتوری ها کمک می کنند. |
Download Helper | Download Helper به شما امکان می دهد داده ها را در دسک تاپ خود بارگیری کنید. |
Email Helper | Email Helper توابع کمکی برای کار با Email را فراهم می کند. برای یک راه حل الکترونیکی قوی تر ، کلاس ایمیل CodeIgniter را تنظیم کنید. |
File Helper | پرونده File Helper شامل توابعی است که در کار با پرونده ها کمک می کنند. |
Form Helper | پرونده Form Helper شامل توابعی است که به کار با فرم ها کمک می کنند. |
HTML Helper | فایل HTML Helper شامل توابعی است که به کار با HTML کمک می کنند. |
Inflector Helper | پرونده Inflector Helper شامل توابعی است که به شما امکان می دهد کلمات را به حالت جمع ، مفرد ، و غیره تغییر دهید. |
Language Helper | فایل Language Helper شامل توابعی است که به کار در پرونده های زبان کمک می کنند. |
Number Helper | پرونده Number Helper حاوی توابعی است که به شما کمک می کند با داده های عددی کار کنید. |
Path Helper | پرونده Path Helper شامل توابعی است که به شما امکان می دهد با مسیرهای پرونده در سرور کار کنید. |
Security Helper | پرونده Security Helper شامل توابع مربوط به امنیت است. |
Smiley Helper | پرونده Smiley Helper شامل توابعی است که به شما امکان می دهد شکلک ها (شکلک ها) را مدیریت کنید. |
String Helper | پرونده String Helper شامل توابعی است که در کار با رشته ها کمک می کنند. |
Text Helper | پرونده Text Helper شامل توابعی است که به کار با متن کمک می کنند. |
Typography Helper | پرونده Typography Helper شامل توابعی است که به متن شما در قالب معنایی از نظر معنایی کمک می کند. |
URL Helper | پرونده URL Helper شامل توابعی است که در کار با URL ها کمک می کنند. |
XML Helper | پرونده XML Helper شامل توابعی است که به کار با داده های XML کمک می کنند. |
بارگزاری helper در codeigniter
همانطور که در زیر نشان داده شده است ، یک helper بارگیری می شود –
1 2 |
$this->load->helper('name'); |
name نام helper است. به عنوان مثال ، اگر می خواهید URL Helper را بارگیری کنید ، می توان آن را به صورت زیر بارگذاری کرد –
1 2 |
$this->load->helper('url'); |
Routing
Routing یا مسیریابی در codeigniter
CodeIgniter دارای سیستم مسیریابی URI کاربر پسند user-friendly است ، بنابراین شما می توانید به راحتی URL را دوباره مسیریابی کنید. به طور معمول ، یک رابطه یک به یک بین رشته URL و کلاس / متد کنترل کننده مربوطه وجود دارد. بخشها در URI به طور معمول از این الگو پیروی می کنند –
1 2 |
your-domain.com/class/method/id/ |
- اولین بخش کلاس controller را فراخوانی می کند.
- بخش دوم تابع کلاس یا متد را نشان می دهد که باید فراخوانی شود.
- بخش سوم و هر بخش اضافی ، ID و هر متغیری را که به controller منتقل می شود ، نشان می دهد.
در بعضی شرایط ، ممکن است بخواهید این مکانیسم مسیریابی پیش فرض را تغییر دهید. CodeIgniter امکاناتی را فراهم می کند که از طریق آن می توانید قوانین مسیریابی خود را تنظیم کنید.
سفارشی سازی قوانین Routing
سفارشی سازی قوانین Routing در codeigniter
یک فایل خاص وجود دارد که می توانید همه اینها را اداره کنید. این فایل در application / config / route.php قرار دارد. آرایه ای به نام $route پیدا خواهید کرد که در آن می توانید قوانین مسیریابی خود را شخصی سازی کنید. کلید در آرایه $route تعیین می کند که چه مسیری را انتخاب کند و مقدار تعیین می کند که کجا مسیریابی شود. در CodeIgniter سه مسیر رزرو شده وجود دارد.
مسیر رزرو شده | توضیحات |
---|---|
$route['default_controller'] | اگر URI فاقد داده باشد ، این مسیر نشان می دهد که کدام کلاس کنترل کننده باید بارگیری شود ، این مورد در صورتی است که افراد URL روت شما را بارگیری می کنند. به شما توصیه می شود که یک مسیر پیش فرض داشته باشید در غیر اینصورت به طور پیش فرض یک صفحه 404 ظاهر می شود. ما می توانیم صفحه اصلی وب سایت را در اینجا تنظیم کنیم تا به طور پیش فرض بارگیری شود. |
$route['404_override'] | این مسیر نشان می دهد که اگر کنترل کننده درخواستی پیدا نشد ، کدام کلاس کنترل کننده باید بارگیری شود. این صفحه خطای پیش فرض 404 را لغو می کند. بر عملکرد show_404 () که بارگیری پرونده error_404.php پیش فرض application/views/errors/error_404.php. ادامه خواهد داشت ، تأثیری نخواهد داشت. |
$route['translate_uri_dashes'] | همانطور که با ارزش بولی مشخص است ، این دقیقاً یک مسیر نیست. این گزینه به شما امکان می دهد تا خطوط زیر را در قسمت کنترل کننده و متد URI به طور خودکار با خط تیره (‘-‘) جایگزین کنید ، بنابراین در صورت نیاز به این کار ورودی های مسیر اضافی را برای شما ذخیره می کند. این مورد الزامی است زیرا dash یک کلاس یا نوع نام معتبر نیست و اگر بخواهید از آن استفاده کنید خطایی مهلک ایجاد می کند. |
مسیرها را می توان با استفاده از wildcard یا با استفاده از عبارات منظم سفارشی کرد اما به خاطر داشته باشید که این قوانین سفارشی برای مسیریابی باید پس از قوانین رزرو شده ارائه شوند.
Wildcards
همانطور که در زیر توضیح داده شده است ، می توانیم از دو کاراکتر wildcard استفاده کنیم –
(: num) – با قطعه ای که فقط اعداد دارد مطابقت دارد.
(: any) – با یک بخش شامل هر کاراکتر مطابقت دارد.
مثال
1 |
$route['product/:num']='catalog/product_lookup'; |
در مثال بالا ، اگر کلمه واقعی “Product” در بخش اول URL پیدا شود و در بخش دوم یک عدد پیدا شود ، به جای آن از کلاس “Catalogue” و از متد “Product_lookup” استفاده می شود.
Regular Expression
عبارات منظم در codeigniter
مانند کلمات wildcardها، ما همچنین می توانیم از عبارات منظم در قسمت کلیدی آرایه $route استفاده کنیم. اگر هر URI با عبارت منظم مطابقت داشته باشد ، به قسمت مقدار تنظیم شده در آرایه $ route هدایت می شود.
مثال
1 |
$route['products/([a-z]+)/(\d+)']='$1/id_$2'; |
در مثال بالا ، یک URI مشابه محصولات / shoes / 123 در عوض کلاس کنترل کننده “shoes” و متد “id_123” را فراخوانی می کند.
دیدگاهتان را بنویسید