Tulisan lalu saya membahas tentang framework Laravel, kini saya ini membahas kembali CI (CodeIgniter) sekaligus melanjuti artikel lama saya. Dan memang sudah cukup lama sekali saya tidak menulis CI setelah menggunakan Laravel. Tidak dipungkiri berdasarkan statistik dari JetPack bahwa situsali lebih banyak di akses tentang bagaimana cara belajar CI 3? ? Oleh karenanya saya merasa seperti ada hutang yang perlu dilunasi hehehe ?
Kembali ke topik, tulisan lalu mengenai belajar CI di sini saya telah memberikan pengetahuan dasar mengenai routing dan helper. Sekarang kita membahas tentang Controller
-nya dan pemanfaatanya.
Syarat Membuat Controller
Di CI, cara melihat itu controller
sangat mudah Anda hanya perlu melihatnya pada URL
seperti berikut:
https://domain.com/index.php/welcome
welcome
adalah nama controller
nya, index.php
ada karena pengaturan default dari web server seperti Apache atau Nginx. Anda bisa menghilangnya jika Anda mau, silahkan baca mengenai materi dasar-dasar routing.
Controller
pada CI terletak pada direktori Application
-> Controllers
:
Adapun syarat-syarat controller
dalam CI:
* Secara umum harus diletakan dalam direktori `application` -> `controllers`.
Anda bisa saja mengganti direktori application
dengan yang lain, tapi ini menjadi tidak standard CI.
* Nama berkas dalam controller
harus berawalan huruf kapital contohnya: Book.php
, Blog.php
, Download.php
, dan sebagainya.
* Nama class
pada controller
harus sama dengan nama berkas, dan harus berawalan huruf kapital juga.
* Penamaan berkas pada controller
memiliki larangan yang sama dengan penamaan class
yakni:
* Tidak berawalan angka
* Tidak boleh mengandung karakter simbol
* hanya boleh huruf dan angka dan angka tidak boleh di awal.
* Berkas setidaknya wajib atau sekurang-kurangnya berisi seperti kode di bawah ini:
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class Duren extends CI_Controller { public function index() { } }
* `function index()` wajib ada.
Pemanfaatan Public Function
Di controller
, public function dapat di akses langsung oleh peramban (browser), urutan URL
nya seperti berikut:
https://domain.com/index.php/controller/function/id/id2/id3
Contoh:
* Buat berkas bernama `Personal.php`
* Isikan kode sumber di bawah ini:
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class Personal extends CI_Controller { public function index() { echo "isi namanya dulu..."; } public function udin() { echo "Halo namaku Udin"; } }
Hasilnya akan seperti gambar di bawah ini:
Contoh:
* Buat berkas bernama Produk.php
* Isikan seperti kode di bawah ini:
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class Produk extends CI_Controller { public function index() { echo "Semuanya"; } public function sepatu($merk,$warna,$no) { echo "Jenis Produk: Sepatu<br/>"; echo "Merk: $merk<br/>"; echo "Warna: $warna<br/>"; echo "Nomor: $no"; } }
Hasilnya akan seperti gambar di bawah ini:
Pemanfaatan Private Function
Perlu diketahui sebagaimana dari class
jika Anda tidak mendeklarasikan_ function_ dengan deklarasi public
, private
, ataupun protected
. Maka defaultnya adalah public (baca: Konsep OOP), dan di CI public function bisa langsung diakses melalui peramban.
Adakalanya kita butuh suatu function dalam controller
kita tidak dapat diakses langsung, oleh karenannya tambahkan saja private
pada function tersebut maka peramban tidak akan bisa mengaksesnya secara langsung.
Contoh:
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class Welcome extends CI_Controller { public function index() { $this->load->view('welcome_message'); } private function unggah(){ echo "mengunggah"; } }
Hasilnya CI menampilkan kode 404 pada peramban.
Mudah bukan? Semoga bermanfaat.?
Komentar