PDKT CodeIgniter : Controller [Part 2]


CONTROLLER

Controller adalah sebuah class yang menghubungkan antara Models dan View dan namanya bisa dihubungkan dengan URI. Sebagai contoh : http://localhost/ci/index.php/hello, segmen pertama (hello) merupakan nama class/controller sehingga CodeIgniter akan berusaha menemukan file hello.php dan me-loadnya. Beberapa aturan controller sebagai berikut :

  • Diletakkan di folder \application\controllers (C:\xampp\htdocs\CI\system\application\controllers).
  • Huruf pertama nama suatu class didalam controller harus capital dan yang lainnya huruf kecil.
  • Nama class harus sama dengan nama file.
  • Controller yang kita buat harus extends terhadap kelas controller parent sehingga dapat meng-inherit semua fungsinya.
  • Nama constructor harus sama persis dengan nama class dan didalam constructor harus terdapat script parent::Controller();
  • Fungsi index() merupakan fungsi default dan harus terdapat didalam suatu controller.

FUNCTION

Didalam contoh Hello World diatas, fungsi index() merupakan fungsi yang selalu di load secara default jika segmen yang kedua kosong. Jadi untuk menampilkan Hello World bisa melalui url : http://localhost/ci/index.php/hello atau http://localhost/ci/index.php/hello/index. Tambahkan fungsi seperti dibawah ini :

<?php
 class Hello extends Controller {
  function index() {
    echo "Hello World Using CodeIgniter";
  }
    function another_hello() {
      echo "Another hello....";        

 }
}
?>
Untuk memanggil fungsi another_hello() dengan menggunakan url sebagai berikut: http://localhost/ci/hello/another_hello.
Segmen 1 : hello –> Contoller
Segmen 2 : another_hello –> method/fungsi
Segmen 3 : n/a

DEFAULT CONTROLLER

Jika didalam URL tidak terdapat controller secara explicit (contoh : http://localhost/CI/), maka kita dapat menyuruh CodeIgniter untuk load default class controller dengana cara buka dan edit file routes.php yang terdapat di folder C:\xampp\htdocs\CI\system\application\config, kemudian isikan nama class default controllernya. Sebagai contoh : $route[‘default_controller’] = “hello”; Nama hello merupakan nama class controller.

CONTROLLER DALAM SUB-FOLDER

Controller juga bisa terdapat dalam suatu sub-folder. Misalnya didalam folder controllers, kita memiliki sub folder dengan nama ‘cont_sub’ dan didalamnya file hello.php. Ketika kita menggunakan feature ini, segmen pertama dari URI harus menyebutkan nama sub foldernya. Sehingga URI nya menjadi seperti ini : http://localhost/CI/index.php/cont_sub/hello.

CLASS CONSTRUCTOR

Setiap class secara default memiliki contructor dengan nama yang sama dengan nama class. Jika kita ingin menggunakan constructor tersebut tambahkan script parent::Controller(); didalamnya. Maksud dari script tersebut untuk memberitahu bahwa local constructor kita akan meng-override parent constructor. Construcor sangat berguna jika kita ingin set suatu value atau load library/helper pada saat class tersebut dijalankan. Contoh :

<?php
 class Hello extends Controller {
   function Hello() {
     parent::Controller();
     $this->load->helper(array('url','form','inflector','smiley'));
     $this->load->library(array('table','calendar'));
   }
 
   function index() {
     echo "Hello World Using CodeIgniter";
   }
 
   function another_hello() {
     echo "Another hello....";
   }
 }
?>

Bersambung ke PDKT CodeIgniter : View [Part 3]

One thought on “PDKT CodeIgniter : Controller [Part 2]

  1. Pingback: PDKT dengan CodeIgniter [part 1] « Reizen Of Dany

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s