Halo semuanya, di artikel ini seperti judulnya berbunyi, kita akan membahas masing-masing kegunaan file dan folder didalam starter project Laravel.
Karena secara default ketika kita membuat project laravel baru, kita akan dibuatkan secara otomatis file dan folder. File-file Folder-folder yang dibuatkan adalah bentuk implementasi design architecture MVC (model, view, controller) yang digunakan framework Laravel. Maka dari itu, mari kita mulai pembahasannya.
Struktur Projek Laravel
Ketika kita membuat projek baru Laravel, composer akan mempersiapkan folder-folder dan file-file kerangka yang akan dibutuhkan Laravel untuk berjalan. Berikut adalah kumpulan file dan folder dari kerangka yang dibuat oleh composer:
app/
bootstrap/
config/
database/
public/
resources/
routes/
storage/
tests/
vendor/
.editorconfig
.env
.env.example
.gitattributes
.gitignore
artisan
composer.json
composer.lock
package.json
phpunit.xml
readme.md
server.php
webpack.mix.js
Mari kita telusuri satu per-satu.
Folder
Berikut adalah folder-folder yang tersedia secara default:
App
Folder app berisi kode-kode inti dari aplikasi seperti Model, Controller, Commands, Listener, Events, dll. Poinnya, hampir semua class dari aplikasi berada di folder ini.
Bootstrap
Folder bootstrap berisi file app.php yang dimana akan dipakai oleh Laravel untuk boot setiap kali dijalankan.
Config
Folder config seperti namanya, berisi semua file konfigurasi aplikasi Anda.
Database
Folder database berisi database migrations, model factories, dan seeds. Folder ini akan bertanggung jawab dengan pembuatan dan pengisian tabel-tabel database.
Public
Folder public memiliki file index.php yaitu entry point dari semua requests yang masuk/diterima ke aplikasi. Folder ini juga tempat menampung gambar, Javascript, dan CSS.
Resources
Folder resources berisi semua route yang disediakan aplikasi. Sebagai default, beberapa file routing akan tersedia seperti: web.php, api.php, console.php, dan channels.php. Folder ini adalah tempat dimana kita memberikan koleksi definisi route aplikasi.
Storage
Folder storage adalah tempat dimana cache, logs, dan file sistem yang ter-compile hidup.
Tests
Folder tests adalah tempat dimana unit dan integration tests tinggal.
Vendor
Folder vendor adalah dimana tempat folder-folder dependencies third-party yang telah di-install oleh composer berada.
Files
Berikut adalah file-file yang tersedia secara default:
.editorconfig
Berguna untuk memberi IDE/text editor instruksi tentang standar coding Laravel seperti whitespace, besar identasi, dll.
.env dan .env.example
Tempat dimana variable environment aplikasi ditempatkan (variabel yang diekspektasikan akan berbeda di setiap sistem) seperti nama database, username database, password database.
.gitignore dan .gitattributes
File konfigurasi git.
artisan
Memungkinkan anda untuk menjalankan perintah artisan dari command line.
composer.json dan composer.lock
File konfigurasi untuk composer. File ini adalah informasi dasar tentang projek dan juga mendefinisikan dependencies yang digunakan.
package.json
Mirip-mirip dengan composer.json tapi untuk aset-aset dan dependencies front-end.
phpunit.xml
Sebuah file konfigurasi untuk PHPUnit, tools yang digunakan Laravel untuk testing.
readme.md
Sebuah markdown file yang memberikan pengenalan dasar tentang Laravel.
server.php
Server cadangan yang mencoba untuk tetap menjalankan aplikasi Laravel kepada server yang kurang mampu.
webpack.mix.js Konfigurasi file untuk Mix (opsional). File ini adalah untuk membangun arahan system soal bagaimana meng-compile
Selesai sudah penjelasan tentang kegunaan atau fungsi dari masing-masing file dan folder. Ingat struktur yang dibahas adalah pada laravel versi 9 jadi mungkin di versi laravel yang lebih baru, ada perbedaan.
Terimasih sudah membaca artikel sampai akhir, semoga bermanfaat!