Link Search Menu Expand Document

Struktur Folder CodeIgniter 4

** docs ini masih dalam pengembangan, materi akan ditambah dan diperbaiki.

CodeIgniter 4 sebagai framework PHP memiliki aturan dan struktur folder tersendiri untuk menjalankan tugasnya. Folder dan file dalam starter project (berkas zip yang didownload pertama kali saat memulai proyek ini) sudah disediakan oleh framework CodeIgniter untuk menjalankan fungsi yang membantu mempercepat pembuatan proyek. Bila tidak menggunakan framework, kita harus membuat fungsi-fungsi tersebut dari awal agar bisa membuat website dengan performa yang bagus. Struktur folder ini sudah baku dan kita hanya akan mengubah konfigurasi dan membuat file baru untuk menjalankan alur proses sesuai kebutuhan website. Disini kita akan belajar apa saja fungsi-fungsi folder tersebut.

Untuk mempelajari lebih lanjut Migrasi di CodeIgniter 4 bisa baca di dokumentasi resmi.

Struktur folder utama

Struktur folder utama CI4

app
folder utama tempat alur proses aplikasi, di folder inilah kita nanti banyak menuliskan kode.
public
folder yang diakses pengguna website secara langsung lewat internet, hal ini karena disinilah letak file index.php, yang mana merupakan file pertama kali dijalankan bila mengunjungi sebuah website. Pemisahan folder public dengan folder lain adalah untuk mengamankan source code website. Di folder ini juga kita meletakkan file-file statis dari website kita, seperti file css, js, images, dsb.
system
folder dasar dari framework CodeIgniter, yang mengatur agar CodeIgniter dapat berjalan semestinya, kita tidak perlu menyentuh folder ini.
tests
folder tempat menyimpan file testing otomatis. Daripada developer mencoba fitur-fitur / fungsi dalam aplikasi apakah sudah berjalan baik atau belum secara manual, kita dapat membuat alur testing agar dijalankan secara otomatis oleh komputer. Testing yang baik akan sangat berguna untuk memastikan kode yang dijalankan terhindar dari bug.
writable
folder untuk menyimpan file-file yang akan dibuat selama website berjalan seperti cache, logs, uploads file, dsb.
.env
singkatan dari environtment, merupakan file untuk menyimpan nilai konfigurasi sistem sesuai dengan lingkungan dijalankan, misal lingkungan development memiliki konfigurasi yang berbeda dengan lingkungan produksi.
composer.json
file konfigurasi package yang digunakan jika menggunakan package manager Composer. Package manager merupakan pengelola package luar (dikembangkan oleh developer lain) yang dapat membantu proses pengembangan software.
spark
file untuk menjalankan PHP yang dapat membantu pengembangan website dengan CodeIgniter. Contohnya command ''' php spark serve''' yang dijalankan untuk membuat virtual host dari website kita sekaligus mendeploy-nya komputer local.

Struktur folder app

Struktur folder app CI4

Config
folder tempat mengatur konfigurasi CodeIgniter, seperti url, autoload, database, filters, routes, dsb. Untuk konfigurasi yang tergantung dengan environtment (development atau production), lebih baik ubah pada file .env di folder utama.
Controllers
folder dari logika/alur proses website yang akan dikembangkan (Controller dari konsep MVC).
Database
folder untuk migrasi database dan seeding database, berkaitan dengan pembuatan dan modifikasi database.
Filters
folder untuk menyimpan berkas Filter, berkaitan dengan fungsi yang berjalan sebelum/sesudah suatu controller dijalankan.
Helpers
folder untuk menyimpan fungsi-fungsi tunggal (dapat berdiri sendiri) yang sering diakses untuk membantu pengembangan webite.
Languages
folder tempat translasi multibahasa.
Libraries
folder untuk menyimpan Class/File lain yang tidak termasuk salah-satu folder di atas (atau di bawah ini).
Models
folder dari entiti bisnis yang disimpan dalam database (Model dari konsep MVC).
ThirdParty
folder untuk menyimpan library pihak ketiga yang dapat membantu pengembangan website. Daripada membuat sendiri dari awal sebuah fungsi/fitur tertentu, kita dapat menggunakan library yang dibuat oleh developer lain.
Views
folder untuk menyimpan file yang berhubungan dengan tampilan yang akan terlihat di browser client (UI/antar muka), berupa file-file html dan/atau javascript (View dari konsep MVC).

Diskusi