Tutorial Codeigniter 4: Konsep Dasar CI4 yang Harus dipahami
Sudah berhasil install CI 4?
Bagus..
Berikutnya, kita akan berkenalan lebih dekat dengan CI4.
Harapannya, kamu bisa terbiasa dengan lingkungan kerja atau codebase CI4.
Kita akan mulai dengan mengenal struktur direktorinya terlebih dahulu, lalu membahas konsep MVC yang ada di Codeigniter 4.
Baiklah..
Mari kita mulai!
Struktur Direktori Codeigniter 4
Jika kamu baru pertama kali belajar Codeigniter, maka wajib hukumnya mengetahui apa saja isi direktori dan file yang ada di dalam project codeigniter.
Silakan buka teks Editor VS Code, lalu pilih File->Open Folder. Cari folder 📁 ci-news
.
Maka kita akan mendapatan struktur direktori seperti ini:
Terdapat beberapa direktori dan file di sana. Mari kita bahas satu-per-satu. Mulai dari direktori dulu ya.
- 📁
.github
folder ini kita butuhkan untuk konfigurasi repo github, seperti konfigurasi untuk build dengan github action; - 📁
app
folder ini akan berisi kode dari aplikasi yang kita kembangkan; - 📁
public
folder ini berisi file yang bisa diakses oleh publik, seperti fileindex.php
,robots.txt
,favicon.ico
,ads.txt
, dll; - 📁
tests
folder ini berisi kode untuk melakukan testing dengan PHPunit; - 📁
vendor
folder ini berisi library yang dibutuhkan oleh aplikasi, isinya juga termasuk kode core dari system CI. - 📁
writable
folder ini berisi file yang ditulis oleh aplikasi. Nantinya, kita bisa pakai untuk menyimpan file yang di-upload, logs, session, dll.
Berikutnya, kita akan bahas tentang file-file yang ada di direktori CI 4.
- 📄
.env
adalah file yang berisi variabel environment yang dibutuhkan oleh aplikasi. - 📄
.gitignore
adalah file yang berisi daftar nama file dan folder yang akan diabaikan oleh Git. - ⚙️
build
adalah script untuk mengubah versi codeigniter yang digunakan. Ada versirelease
(stabil) dandevelopment
(labil). - 📜
composer.json
adalah file JSON yang berisi informasi tentang proyek dan daftar library yang dibutuhkannya. File ini digunakan oleh Composer sebagai acuan. - 📜
composer.lock
adalah file yang berisi informasi versi dari library yang digunakan aplikasi. - ©️
license.txt
adalah file yang berisi penjelasan tentang lisensi Codeigniter; - 📜
phpunit.xml.dist
adalah file XML yang berisi konfigurasi untuk PHPunit. - 📖
README.md
adalah file keterangan tentang codebase CI. Ini biasanya akan dibutuhkan pada repo github atau gitlab. - ⚙️
spark
adalah program atau script yang berfungsi untuk menjalankan server, generate kode, dll.
Kemudian, coba kita fokus ke folder 📁 app
, di sana ada beberapa folder dan file yang perlu kita ketahui.
- 📁
Config
adalah folder yang berisi konfigurasi untuk aplikasi; - 📁
Controllers
adalah folder yang berisi kode Controller dari aplikasi; - 📁
Database
adalah folder yang berisi kode untuk migrasi database; - 📁
Filters
adalah folder yang berisi kode untuk filter atau middleware; - 📁
Helpers
adalah folder yang berisi kode untuk fungsi-fungsi helper; - 📁
Language
adalah folder yang berisi kamus bahasa untuk aplikasi; - 📁
Libraries
adalah folder yang berisi library tambahan untuk aplikasi; - 📁
Models
adalah folder yang berisi kode untuk model; - 📁
ThirdParty
adalah folder yang berisi library dari pihak ketiga; - 📁
Views
adalah folder yang berisi kode untuk view; - 📜
.htaccess
adalah file yang berisi konfigurasi akses untuk web server; - 📜
Common.php
adalah file yang berisi definisi fungsi untuk menindih fungsi core dari CI. - 📜
index.html
adalah file placeholder untuk mencegah direct access.
Nah, itulah beberapa file dan folder yang harus dipahami. Sebenarnya masih banyak lagi file di dalam folder app
yang harus kamu ketahui.
Namun, karena terlalu banyak.. nanti kita bahas barengan dengan tutorial berikutnya.
Mengenal Konsep MVC Codeigniter 4
Codeigniter sejak awal menganut konsep MVC. Karena itu, ia begitu terkenal. Soalnya, implementasi MVC di CI mudah dipahami.
Apa itu MVC?
MVC adalah singkatan dari Model–View–Controller. MVC merupakan sebuah pola desain arsitektur yang umum digunakan dalam pengembangan aplikasi.
Masih ingat latar belakang mengapa kita harus pakai framework?
Yap, biar kode program lebih konsisten dan terstruktur. Sehingga kita akan mudah kolaborasi dengan tim.
Nah, si MVC ini adalah pola penulisan kode yang umum dipakai.. di mana kode untuk Model di taruh dalam folder yang sama, begitu juga dengan kode untuk View dan Controller.
Coba perhatikan gambar berikut:
Gambar ini menyatakan bagaimana hubungan kode pada MVC.
Apa itu Model?
Model adalah kode yang bertugas untuk membuat pemodelan data. Kadang juga dipakai untuk pemodelan bisnis.
Model bisa mengakses data dari Database dan juga sumber lainnya.
Intinya:
Kalau berkaitan tentang data, itu tugasnya model.
Apa itu View?
View adalah kode yang bertugas untuk membuat tampilan aplikasi.
Ingat:
Fokusnya untuk membuat tampilan aplikasi, bukan yang lain. Kita tidak boleh query data dari view, meskipun itu bisa dilakukan.
Kadang juga kita akan membuat sedikit logika di dalam view, seperti logika untuk menampilkan dan menghilangkan elemen tertentu.
Apa yang kita lihat di aplikasi, itu adalah kode dari View.
Apa itu Controller?
Nah, si Controller inilah yang bertugas menyatukan Model dan View.
Jadi, setiap ada request..
Controller akan bertanggung jawab untuk membalas request tersebut.
Jika itu request untuk menyimpan data ke database, maka Controller harus memanggil Model yang bertanggung jawab untuk data tersebut. Lalu meminta model untuk menyimpannya ke database.
Jika itu request untuk view data, maka Controller akan mencari kode View yang bertanggung jawab untuk menampilkan data tersebut.
Kadang juga Controller akan membutuhkan beberapa library dan helper untuk memproses request.
Intinya:
Controller bertanggung jawab untuk membalas request dari client.
Tapi sebelum itu.. ada router di depan controller yang bertanggung jawab untuk menentukan Controller mana yang akan dieksekusi.
Router di Codeigniter 4
Coba buka file app/Config/Routes.php
. File ini adalah file router yang bertugas untuk menentukan, Controller mana yang akan bertanggung jawab pada request tertentu.
Sebagai contoh:
Perhatikan kode ini.
$routes->get('/', 'Home::index');
Saat ada request ke halaman root (/
) atau alamat domain dari aplikasi, maka Controller yang akan bertugas adalah Home
dan method yang akan dipakai adalah index
.
Intinya:
Router akan memberikan tugas pada Controller tertentu untuk membalas sebuah request.
Apa Selanjutnya?
Jadi kesimpulannya:
Codeigniter 4, menggunakan konsep MVC. Request pada Codeigniter pertama kali akan diterima oleh file public/index.php
kemudian diteruskan ke router dan diproses oleh Controller.
Berikutnya, silakan pelajari:
Untuk tutorial CI lainnya, cek di 📚 List Tutorial Codeigniter