Press ESC to close

Laravel #3 Memahami Struktur Folder dan File di Laravel

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:

  1. Permintaan Masuk: Semua permintaan diarahkan ke public/index.php.
  2. Bootstrap Framework: File index.php memuat file autoload Composer dan bootstrap Laravel.
  3. HTTP Kernel: Permintaan diteruskan ke app/Http/Kernel.php untuk memproses middleware.
  4. Routing: Laravel memeriksa rute yang sesuai di routes/web.php atau routes/api.php.
  5. Controller: Jika rute mengarah ke controller, permintaan diteruskan ke metode controller terkait.
  6. Model dan Database: Controller dapat berinteraksi dengan model untuk mengambil atau menyimpan data.
  7. View: Data kemudian dikirim ke view untuk dirender menjadi HTML.
  8. 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 atau resources\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)

Leave a Reply

Your email address will not be published. Required fields are marked *