REPUBLIKA.CO.ID, SOLO -- Dalam dunia pengembangan web, terdapat banyak framework yang memudahkan proses pembuatan aplikasi yang efisien dan terstruktur. Salah satu framework yang menjadi favorit banyak pengembang adalah Laravel. Laravel diperkenalkan pertama kali pada tahun 2011 oleh Taylor Otwell.
Sejak itu, framework ini telah berkembang menjadi salah satu yang paling populer dalam dunia pengembangan web. Salah satu alasan utamanya adalah struktur folder yang keren dan konsisten, yang mengikuti pola MVC (Model-View-Controller).
Dosen Universitas BSI Kampus Solo Galih Setiawan menjelaskan ini berarti kode aplikasi dibagi menjadi tiga bagian: Model, View, dan Controller. Setiap bagian memiliki peran dan tanggung jawabnya masing-masing dalam aplikasi.
1. Model: Otak dari Aplikasi
Bagian pertama adalah Model. Di sini merupakan tempat pengelolaan data terjadi. Model berinteraksi dengan database, melakukan validasi data, perhitungan, serta logika bisnis lainnya. Model bisa diibaratkan sebagai otak aplikasi, yang memiliki pengetahuan mendalam tentang data dan cara mengelolanya.
2. View: Tampilan
Bagian kedua adalah View. Di sini fokus pada tampilan yang akan dilihat oleh pengguna. View bertugas menampilkan data dengan cara yang mudah dimengerti. Seperti wajah aplikasi, View menampilkan fungsionalitas yang tersedia dalam aplikasi dan cara pengguna berinteraksi dengan fitur-fitur tersebut.
3. Controller: Pengatur Input dan Respons dari user
Bagian ketiga adalah Controller. Di sini tugasnya adalah mengelola input dari pengguna. Controller menerima permintaan dari pengguna, berkomunikasi dengan Model, dan memberikan respons kepada View. Controller bisa diibaratkan sebagai tangan aplikasi, yang menangani semua tindakan yang bisa dilakukan oleh aplikasi dan cara meresponsnya.
Struktur folder
Sekarang mari kita melihat struktur folder dalam Laravel:
Folder app: Di sinilah sebagian besar kode aplikasi ditempatkan. Semua model, controller, services, providers, policies, rules, dan lainnya ada di sini. Semua yang berkaitan dengan logika aplikasi ada dalam folder ini.
Folder bootstrap: Isinya berisi file app.php yang menginisialisasi semua komponen dan layanan dalam framework. Folder ini sebaiknya tidak diubah kecuali jika Anda perlu menyesuaikan beberapa pengaturan inti.
Folder config: Folder ini digunakan untuk menyimpan semua file konfigurasi. Terdapat file-file untuk konfigurasi database, mail, cache, queue, session, dan lain-lain. Anda juga dapat membuat file konfigurasi kustom di sini.
Folder database: Di sini terdapat file-file migrasi database, seed, dan factory. Migrasi adalah file yang mendefinisikan tabel-tabel dalam database, baik yang baru dibuat atau yang akan dimodifikasi.
Seed adalah file yang digunakan untuk mengisi data palsu untuk keperluan pengujian. Factory adalah file yang menghasilkan data palsu untuk model-model.
Folder public: Folder ini berisi file index.php yang merupakan titik masuk untuk semua permintaan ke aplikasi. Ini juga tempat untuk menyimpan aset seperti gambar, file CSS, dan JavaScript.
Folder resources: Di sini berisi tampilan (View) dan aset mentah. Tampilan adalah file yang berisi kode HTML untuk menampilkan data kepada pengguna. Aset mentah berisi kode CSS atau JavaScript yang belum dikompilasi dan perlu diproses dengan alat seperti Laravel Mix.
Folder routes: Folder ini berisi definisi-definisi rute aplikasi. Rute menghubungkan URL dengan controller atau closure yang akan menangani permintaan pengguna.
Folder storage: Di sini Laravel menyimpan file-file yang dihasilkan oleh framework atau aplikasi. Ini termasuk log, tampilan yang sudah dikompilasi, sesi berbasis file, cache berbasis file, dan lainnya.
Folder tests: Folder ini digunakan untuk menulis pengujian aplikasi. Laravel mendukung pengujian unit dan fitur menggunakan PHPUnit.
Folder vendor: Folder ini adalah tempat di mana Composer menyimpan semua dependensi proyek, termasuk Laravel itu sendiri dan paket-paket lain yang digunakan.
Dengan struktur folder yang terorganisir dengan baik ini, Laravel membuat pengembangan aplikasi menjadi lebih mudah dan terstruktur.