
Setelah berhasil menginstal Laravel, langkah berikutnya dalam perjalanan Anda adalah memahami struktur folder dan file yang ada di dalamnya. Memahami struktur ini sangat penting karena akan membantu Anda dalam mengembangkan aplikasi secara efisien dan terorganisir. Artikel ini akan membahas secara detail struktur folder dan file di Laravel, sehingga pemula pun dapat dengan mudah memahaminya.
Mengapa Penting Memahami Struktur Laravel?
Laravel memiliki struktur folder yang dirancang untuk memudahkan pengembangan aplikasi web. Dengan memahami struktur ini, Anda akan mendapatkan manfaat berikut:
- Organisasi Kode yang Baik: Mempermudah navigasi dan pemeliharaan kode.
- Pengembangan Lebih Cepat: Mengetahui di mana harus meletakkan file dan kode tertentu.
- Kolaborasi Tim yang Efektif: Standarisasi struktur memudahkan kerja sama antar developer.
- Pemecahan Masalah Lebih Mudah: Memahami alur aplikasi membantu dalam debugging.
Struktur Folder Utama di Laravel
Ketika Anda membuat proyek Laravel baru, Anda akan melihat beberapa folder utama di dalam direktori proyek Anda. Berikut adalah penjelasan dari masing-masing folder:
1. Folder app
Folder app
adalah tempat utama di mana kode aplikasi Anda berada. Di dalamnya terdapat beberapa subfolder:
- Console: Berisi perintah Artisan kustom yang Anda buat.
- Exceptions: Menangani exception yang terjadi di aplikasi.
- Http: Berisi controller, middleware, dan form request.
- Models: Tempat model Eloquent yang mewakili tabel database.
- Providers: Berisi service provider untuk mengatur layanan aplikasi.
2. Folder bootstrap
Berisi file bootstrap aplikasi, termasuk file app.php
yang menginisialisasi Laravel dan folder cache
untuk cache framework.
3. Folder config
Tempat menyimpan semua konfigurasi aplikasi seperti database, mail, sesi, dan layanan eksternal.
4. Folder database
Berisi file migrasi, seeder, dan pabrik (factories) untuk database:
- migrations: Mengelola versi database Anda.
- seeders: Mengisi database dengan data awal.
- factories: Membuat model uji coba dengan cepat.
5. Folder public
Ini adalah root web server Anda. Berisi file index.php
yang menjadi entry point aplikasi dan aset publik seperti gambar, CSS, dan JavaScript.
6. Folder resources
Berisi sumber daya yang tidak dipublikasikan secara langsung:
- views: Tempat file Blade template.
- lang: Berisi file terjemahan untuk aplikasi multibahasa.
- js dan sass: Sumber daya JavaScript dan CSS sebelum di-compile.
7. Folder routes
Menampung semua definisi rute aplikasi Anda:
- web.php: Rute untuk aplikasi web dengan sesi dan CSRF protection.
- api.php: Rute untuk API yang stateless.
- console.php: Mendefinisikan perintah Artisan kustom.
- channels.php: Mengatur saluran untuk event broadcasting.
8. Folder storage
Menyimpan file yang dihasilkan atau digunakan oleh aplikasi:
- app: File yang di-upload pengguna.
- framework: Cache aplikasi dan sesi.
- logs: File log aplikasi.
9. Folder tests
Berisi pengujian unit dan fitur untuk aplikasi Anda, membantu memastikan kode Anda bekerja dengan benar.
10. Folder vendor
Berisi semua dependensi pihak ketiga yang diinstal melalui Composer. Jangan ubah file di dalam folder ini secara manual.
Penjelasan Detail Beberapa Folder Penting
Mari kita bahas lebih detail beberapa folder yang sering digunakan dalam pengembangan aplikasi Laravel.
Folder app
Di sinilah logika aplikasi Anda berada. Subfolder penting di dalamnya meliputi:
Http
- Controllers: Tempat controller yang menangani permintaan HTTP. Misalnya,
HomeController.php
. - Middleware: Mengatur lapisan logika antara permintaan dan respon, seperti autentikasi.
- Kernel.php: Mendaftarkan middleware global dan grup.
Models
- Berisi model Eloquent yang mewakili tabel database.
- Contoh model:
User.php
,Product.php
.
Providers
- Service provider mengatur layanan dan binding di dalam aplikasi.
AppServiceProvider.php
: Mengatur konfigurasi aplikasi secara umum.AuthServiceProvider.php
: Mengatur kebijakan otorisasi.
Folder resources\views
- Tempat menyimpan tampilan (view) menggunakan Blade templating engine.
- Contoh:
welcome.blade.php
,dashboard.blade.php
. - Anda dapat membuat subfolder untuk mengorganisir view, misalnya
resources\views\layouts
.
Folder routes
- web.php: Mendefinisikan rute yang menggunakan session state dan cookie encryption.php
Route::get('/', function () { return view('welcome'); });
- api.php: Rute untuk API yang stateless.php
Route::middleware('auth:api')->get('/user', function (Request $request) { return $request->user(); });
Folder public
- index.php: Entry point semua permintaan ke aplikasi Anda.
- Tempat meletakkan aset publik seperti gambar, CSS, dan JavaScript yang sudah di-compile.
- Subfolder umum:
css
,js
,images
.
Cara Kerja Alur Aplikasi Laravel
Memahami bagaimana Laravel memproses permintaan akan membantu Anda dalam pengembangan. Berikut adalah alur dasar:
- Permintaan Masuk: Semua permintaan diarahkan ke
public/index.php
. - Bootstrap Framework: File
index.php
memuat file autoload Composer dan bootstrap Laravel. - HTTP Kernel: Permintaan diteruskan ke
app/Http/Kernel.php
untuk memproses middleware. - Routing: Laravel memeriksa rute yang sesuai di
routes/web.php
atauroutes/api.php
. - Controller: Jika rute mengarah ke controller, permintaan diteruskan ke metode controller terkait.
- Model dan Database: Controller dapat berinteraksi dengan model untuk mengambil atau menyimpan data.
- View: Data kemudian dikirim ke view untuk dirender menjadi HTML.
- Respon: Hasil akhirnya dikirim kembali ke pengguna sebagai respon HTTP.
Contoh Praktis: Membuat Halaman About Us
Mari kita coba membuat halaman sederhana untuk memahami struktur ini.
Langkah 1: Menambahkan Rute
Tambahkan rute baru di routes/web.php
:
Route::get('/about', function () {
return view('about');
});
Langkah 2: Membuat View
Buat file baru about.blade.php
di resources/views
dengan isi:
<!DOCTYPE html>
<html>
<head>
<title>Tentang Kami</title>
</head>
<body>
<h1>Halaman Tentang Kami</h1>
<p>Selamat datang di halaman tentang kami.</p>
</body>
</html>
Langkah 3: Mengakses Halaman
Jalankan server dengan php artisan serve
dan buka http://localhost:8000/about
di browser Anda. Anda akan melihat halaman “Tentang Kami” yang baru saja dibuat.
Tips untuk Mengoptimalkan Pengembangan
- Gunakan Nama yang Konsisten: Ikuti konvensi penamaan Laravel untuk controller, model, dan view.
- Pisahkan Logika dan Tampilan: Letakkan logika di controller atau model, dan gunakan view hanya untuk tampilan.
- Manfaatkan Artisan Commands: Untuk membuat file dengan cepat, gunakan perintah Artisan seperti
make:controller
,make:model
, dan lainnya.bashCopy codephp artisan make:controller ContactController php artisan make:model Contact
- Struktur Folder Kustom: Jika diperlukan, Anda dapat membuat subfolder di dalam
app
atauresources\views
untuk organisasi yang lebih baik.
Mengelola Asset dengan Laravel Mix
Laravel Mix memudahkan pengelolaan asset seperti CSS dan JavaScript.
Langkah 1: Instalasi Dependencies
Pastikan Anda memiliki Node.js dan NPM terinstal. Jalankan:
npm install
Langkah 2: Mengubah File Sumber
Edit file CSS atau JS di resources/css
atau resources/js
.
Langkah 3: Compile Asset
Jalankan perintah:
npm run dev
Asset yang sudah di-compile akan ditempatkan di folder public/css
dan public/js
.
Kesimpulan
Memahami struktur folder dan file di Laravel adalah fondasi penting dalam pengembangan aplikasi web dengan framework ini. Dengan pemahaman yang baik, Anda dapat mengembangkan aplikasi yang terstruktur, mudah dipelihara, dan scalable. Jangan ragu untuk mengeksplorasi setiap folder dan mencoba membuat file baru untuk memperdalam pemahaman Anda.
Pada artikel berikutnya, kita akan membahas Routing Dasar: Membuat Rute Pertama Anda di Laravel, di mana Anda akan belajar lebih dalam tentang bagaimana mengatur rute dan menghubungkannya dengan controller dan view.
Comments (2)
Laravel #2: Cara Mudah Install Laravel di Komputer - Latihan Codingsays:
October 10, 2024 at 6:11 am[…] Laravel #1 : Pengenalan Laravel Laravel #3 Memahami Struktur Folder dan File di Laravel […]
Laravel #4 Membuat dan Mengatur URL dengan Mudah - Latihan Codingsays:
October 11, 2024 at 10:09 pm[…] Laravel #3 Memahami Struktur Folder dan File di Laravel Share this: […]