Belajar CodeIgniter 4 #2 : Pengenalan Struktur Aplikasi

Setelah kita belajar installasi dan konfigurasi CodeIgniter 4 pada pembelajaran sebelumnya. Alangkah baiknya kita mengenal terlebih dahulu struktur aplikasi CodeIgniter 4 sebelum kita membuat aplikasi dengan CodeIgniter 4.

Berikut gambar struktur aplikasi CodeIgniter 4.

struktru aplikasi codeigniter 4

Berdasarkan gambar diatas terdapat 5 folder utama yang berisi spesifik bagian yang memiliki fungsi berbeda.

Jika kalian menginstall CodeIgniter 4 menggunakan composer maka folder system menjadi vendor. Begitupun sebaliknya, jika kalian menginstall CodeIgniter 4 secara manual maka folder vendor menjadi system.

App

Pertama kita akan membahas folder App yang merupakan tempat dimana kode aplikasi kita berjalan. Di dalam folder App terdapat beberapa folder lainnya. Berikut penjelasan detailnya.

/app/Config menyimpan file konfigurasi.

/app/Controllers mendefinisikan alur program.

/app/Database menyimpan database migrations dan seed files.

/app/Filters menyimpan filter classes yang dapat berjalan sebelum dan sesudah controller.

/app/Helpers menyimpan fungsi mandiri.

/app/Language berisi dukungan beberapa bahasa.

/app/Libraries berisi classes yang dapat digunakan aplikasi.

/app/Models berisi database yang merepresentasikan entitas bisnis.

/app/ThirdParty merupakan pustaka pihak ketiga yang dapat digunakan aplikasi

/app/Views berisi file html yang dapat menampilkan halaman untuk user.

Public

Folder Public menyimpan bagian yang dapat diakses browser dari aplikasi web kita yang bertujuan untuk mencegah akses langsung ke sumber kode kita. Folder Public berisi file .htaccess, index.php, dan juga assets berupa gambar, file css dan javascript.

Tujuan dari folder public yaitu untuk menjadi “root web” situs kita, dan server web kitan akan dikonfigurasi untuk mengarahkannya.

Tests

Folder Tests berguna untuk menyimpan file pengujian kita. Di dalam folder tersebut terdapat folder tests/support yang menyimpan berbagai kelas tiruan dan utilitas lain yang dapat kita gunakan saat menulis pengujian kita. Folder Test juga tidak perlu ditransfer ke dalam server produksi kita nantinya.

Vendor / System

Seperti yang saya sebutkan diatas, folder vendor dan system memiliki fungsi yang sama yaitu menyimpan file-file yang membentuk kerangka itu sendiri. File yang tedapat pada folder ini tidak boleh dimodifikasi. Sebagai gantinya, kita perlu membuat kelas baru yang menyediakan fungsionalitas yang kita inginkan.

Writable

Direktori writable memiliki fungsi untuk menampung direktori apa pun yang mungkin perlu ditulisi selama aplikasi berjalan. Direktori ini juga untuk menyimpan file cache, log, dan setiap unggahan yang mungkin dikirim pengguna.

Kita harus menambahkan direktori lain yang perlu ditulis oleh aplikasi kita di sini. Hal ini untuk menjaga direktori utama kita yang lain tidak dapat ditulis sebagai tindakan keamanan tambahan.

Scroll to Top