کنترلرها (Controllers) در کد ایگنایتر

کنترلرها (Controllers) در کد ایگنایتر codeigniter

جهت ورود به دوره آموزش تصویری کد ایگنایتر کلیک کنید .

کنترلرها (Controllers)  رابط کاربر با برنامه می باشند و آدرسها را مدیریت میکنند همچنین رابط بین model و view می باشند .

example.com/index.php/blog/

در مثال بالا فایل Blog.php که در پوشه controller قرار دارد را بارگزاری می کند و هچنین تابع index که به صورت پیش فرض می باشد.

<?phpclass Blog extends CI_Controller {
         public function index()        {   
             echo 'Hello World!';        
}
}

در صورتی که شما فایل Blog.php را همانند مثال بالا بسازید و آدرس زبر را بارگزاری نمایید مقدار hello world  چاپ می شود.

example.com/index.php/blog/

 توجه: نام کنترلرها حتما باید با اسم بزرگ شروع شود ‘B’

<?phpclass Blog extends CI_Controller { }

متد ها در کنترلرها (Controllers) در کد ایگنایتر

همان گونه که در مثال بالا مشاهده نمودید ما کدهایمان را درون تابع index()  نوشته شده درواقع تابع پیش فرض ما برای با رگزاری index می باشد ولی شما قابلیت دارید هر تابعی را درون فایل CONTROLLER بارگزاری نمایید .به مثال زیر توجه نمایید.

<?php
class Blog extends CI_Controller {  
       public function index()     
   {    
            echo 'Hello World!';     
   }      

   public function comments()     
   {
                echo 'Look at this!';       

 }
}

درا ین مثال ما دو تابع داریم به نام های index و comments  برای صدا زدن تابع comments به صورت آدرس زیر تابع comments را بارگزاری می شود.

پیشنهاد پیرو برای شما :   نحوه ساخت هلپر ها در لاراول

example.com/index.php/blog/comments/

با بارگزاری آدرس فوق شما باید متن جدید را مشاهده کنید .”look at this”

ارسال مقدار به توابع و متدها در کنترلرها (Controllers) در کد ایگنایتر

شما امکان ارسال مقدار به متدها را دارید به طور مثال وقتی بخواهید شناسه ای را به توابعی بفرستید و طبق اطلاعات آن شناسه مطلبی را نشان دهد .

example.com/index.php/products/shoes/sandals/123

همان گونه که می بینید می خواهیم به تابعی به نام shoes  که کفشها را نشان میدهد ، مقدار sandal و ۱۲۳ را ارسال کنیم.

<?php
class Products extends CI_Controller {
         public function shoes($sandals, $id)       
 { 
               echo $sandals;                echo $id;        
}
}

همانگونه که مشاهده میکنید تابع shoes درمتغیر sandal و id را دریافت و چاپ میکند بعد از اجرای برنامه sandal و ۱۲۳ چاپ می شود و درون تابع مقدارهای $sandals و $id  مقدار می گیرند.

تعریف کنترلر پیش فرض در کنترلرها (Controllers) در کد ایگنایتر

کنترلر پیش فرض : کنترلی است که در صورتی که ما برنامه را بدون آدرسی صدا بزنیم آن کنترل بارگزاری می شود . که مقدار آن را در فایل  application/config/routes.php می توانید تغییر دهید.

$route[‘default_controller’] = ‘blog’;

توجه: در مقدار دهی بالا فقط کافی است کنترلر را بنوسید بدون هیچ آدرس دیگری در صورتی که مقدار تابع را مشخص نکنید تابع index() در آن کنترلر بارگزاری میشود.

طبقه بندی کنترلرها با استفاده از پوشه بندی

شما به راحتی می توانید فایلهای کنترلرها را طبقه بندی کنید و آنها را با فولدرها جدا سازی کنید به طور مثال:

application/controllers/products/Shoes.php

پیشنهاد پیرو برای شما :   مثال کاربردی mvc

 وبه صورت زیر میتوانید از کنترلر مورد نظر استفاده کنید.

example.com/index.php/products/shoes/show/123

سازنده های کلاس

هنگامی که شما می خواهید کلاسی سفارشی بسازید و تمامی اجزای کلاس ریشه آنرا بارگزاری نمایید از سازنده ها استفاده می کنیم.

parent::__construct();

در کد ایگنایتر شما کنترلری می سازید و از ریشه ان سازنده می سازید همانند کد زیر بعد از آن شما تمامی کنترلرها را می توانید از آن کنترلر ریشه بگیرید و به این صورت شما می توانید اجزای سفارشی خود را در کلاس ریشه ساخته و هر موقع نیاز داشتید بارگزاری نمایید.

<?php
class Blog extends CI_Controller {
         public function __construct() 
       {              
  parent::__construct();       
         // Your own constructor code     
   }
}

 توجه:جهت دریافت لیست نامهای رزرو شده به آدرس زیر مراجعه نمایید

.http://www.codeigniter.com/user_guide/general/reserved_names.html