Controller merupakan bagian dari Pola Desain Software MVC (Model, View, Control)
Controller berfungsi sebagai tempat untuk mengontrol setiap proses requests HTTP yang terjadi
Nama Controller di CI 4 nantinya akan dibaca sebagai segment pertama pada url dan methodnya akan dibaca pada segment kedua, coba perhatikan format url dibawah ini
http://localhost:8080/controller/method
jadi ketika kalian membuat sebuah file controller dengan nama Home.php lalu berisi method rumah maka ini nantinya akan digunakan dibagian routes untuk menangani setiap request yang masuk
agar lebih jelas lagi penjelasan diatas, coba kalian buka file routes.php belajar_ci4 yang sebelumnya diinstall terletak di app/Config/Routes.php
terdapat 1 baris kode yaitu $routes->get('/', 'Home::index');
perhatikan nilai dari method get yang pertama yaitu berisi slash (/), maksud dari slash ini ditujukan untuk menentukan halaman index / homepage
lalu coba perhatikan nilai dari method get yang kedua yang berisi (Home::index), maksudnya ini ditujukan untuk mengakses controller Home yang memiliki method index
sekarang kalian buka file controllernya yang terletak di app/Controllers/Home.php
dididalam controller tersebut hanya berisikan class Home dan memiliki method index
Aturan Pembuatan Controller CI 4
terdapat aturan yang harus diterapkan saat membuat sebuah controller, yaitu
nama file dan class controller harus diawali huruf besar dan seterusnya harus menggunakan huruf kecil
contoh penulisan nama file yang benar 'Mypages.php' dan untuk kode classnya harus disamakan dengan nama filenya yaitu 'class Mypages'
Membuat Controller
untuk membuat controller terdapat 2 cara yang bisa kalian lakukan, secara manual atau dengan membuatnya menggunakan spark
Membuat Controller Menggunakan Spark untuk membuatnya menggunakan spark kalian hanya perlu mengetikan perintah
php spark make:controller nama_controller
rubah nama_controller dengan nama controlle yang kalian buat, misalnya
php spark make:controller Pages
membuatnya secara manual tidak kalah cepat dengan menggunakan spark, kalian hanya tinggal membuat file controller baru secara manual dan mengcopy controller yang sudah ada, tidak lupa juga untuk mengganti nama classnya
Praktek membuat Controller
untuk lebih memahami lagi tentang controller ini, saya akan mempraktekan bagaimana cara membuat controller yang memiliki kriteria
- dibuat disub-folder
- menggunakan spark
- routing secara manual
- menangkap segment dinamis
oke langsung saja praktek...
Langkah 1 buat file controller menggunakan spark dengan mengetikan perintah
php spark make:controller blog/post
membuat routing manual dengan mengedit file 'app/Config/Routes.php', dan menambahkan kode dibawah ini pada bagian Route Definitions
$routes->get('blog/(:any)/(:num)', 'Blog\Post::index/$1/$2');
mengedit file controller yang sebelumnya dibuat 'app/Controllers/Blog/Post.php', ganti method index menjadi seperti kode dibawah ini
public function index($permalink, $id)
{
echo $permalink;
echo "<br/>";
echo $id;
}
Uji Coba menjalankan web server dengan spark dan membuka alamat 'http://localhost:8080/blog/test/1'
maka dibrowser akan memunculkan tulisan test dan angka 1