Struktur Folder Laravel: Memahami Arsitektur MVC dengan Mudah

Memahami struktur folder laravel

Laravel adalah framework PHP yang mengadopsi pola arsitektur Model-View-Controller (MVC). Memahami struktur folder Laravel sangat penting bagi pemula agar dapat mengembangkan aplikasi dengan lebih rapi dan efisien.

Dalam artikel ini, kita akan membahas setiap folder dalam Laravel, fungsi masing-masing, serta bagaimana arsitektur MVC diterapkan dalam framework ini.


Struktur Folder Utama di Laravel

Saat pertama kali membuat proyek Laravel, Anda akan melihat beberapa folder utama:

project-name/
│── app/
│── bootstrap/
│── config/
│── database/
│── public/
│── resources/
│── routes/
│── storage/
│── tests/
│── vendor/
│── .env
│── artisan
│── composer.json
│── package.json

Mari kita bahas satu per satu.

1. Folder app/ (Berisi Logika Aplikasi)

Folder ini menyimpan sebagian besar kode aplikasi, termasuk Model, Controller, dan Middleware. Struktur di dalamnya biasanya seperti ini:

app/
│── Console/
│── Exceptions/
│── Http/
│   ├── Controllers/
│   ├── Middleware/
│── Models/
│── Providers/
  • Controllers (Http/Controllers/) → Tempat menyimpan logika pengendali dalam MVC.

  • Models (Models/) → Berisi representasi database dalam bentuk class PHP.

  • Middleware (Http/Middleware/) → Menangani request sebelum masuk ke controller.

2. Folder bootstrap/ (Konfigurasi Awal Laravel)

Menyimpan file yang bertanggung jawab untuk bootstrap aplikasi, termasuk memuat file yang diperlukan sebelum dijalankan.

3. Folder config/ (Konfigurasi Aplikasi)

Di sinilah pengaturan utama aplikasi Laravel berada, seperti database, cache, mail, dan lainnya. File penting:

  • app.php → Konfigurasi utama aplikasi.

  • database.php → Pengaturan koneksi database.

4. Folder database/ (Manajemen Database)

Berisi file terkait database seperti migrasi, seeder, dan factory.

5. Folder public/ (Akses File Publik)

Folder ini menjadi root akses publik, tempat menyimpan index.php, file CSS, JavaScript, dan asset lainnya.

6. Folder resources/ (View dan Asset Aplikasi)

Berisi tampilan yang akan dirender untuk pengguna. Folder penting:

  • views/ → Berisi file Blade template.

  • css/ dan js/ → Berisi asset frontend.

7. Folder routes/ (Manajemen Routing)

Berisi file untuk mendefinisikan rute aplikasi Laravel.

  • web.php → Rute untuk aplikasi berbasis web.

  • api.php → Rute untuk API.

  • console.php → Rute untuk perintah Artisan.

8. Folder storage/ (Penyimpanan Data Sementara)

Menyimpan log aplikasi, cache, dan file yang diunggah.

9. Folder tests/ (Pengujian Aplikasi)

Digunakan untuk menulis unit test dan feature test.

10. Folder vendor/ (Library dari Composer)

Berisi semua package dan dependency yang diinstal melalui Composer.


Bagaimana Laravel Menerapkan Arsitektur MVC?

Laravel menggunakan pola MVC (Model-View-Controller) untuk memisahkan logika aplikasi, tampilan, dan data.

  1. Model (app/Models/) → Berisi data dan interaksi dengan database.

  2. View (resources/views/) → Tampilan yang diakses pengguna.

  3. Controller (app/Http/Controllers/) → Mengelola request dan respons aplikasi.

Contoh penerapan sederhana MVC di Laravel:

  • Model (app/Models/Post.php):

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Post extends Model {
    protected $fillable = ['title', 'content'];
}
  • Controller (app/Http/Controllers/PostController.php):

namespace App\Http\Controllers;

use App\Models\Post;
use Illuminate\Http\Request;

class PostController extends Controller {
    public function index() {
        $posts = Post::all();
        return view('posts.index', compact('posts'));
    }
}
  • View (resources/views/posts/index.blade.php):

@foreach ($posts as $post)
    <h2>{{ $post->title }}</h2>
    <p>{{ $post->content }}</p>
@endforeach

Dengan memahami struktur folder dan konsep MVC ini, Anda akan lebih mudah dalam mengembangkan aplikasi Laravel.


Kesimpulan

Struktur folder Laravel dirancang untuk mendukung arsitektur MVC, yang membantu memisahkan logika aplikasi, tampilan, dan data secara jelas. Dengan memahami struktur ini, Anda akan lebih mudah mengembangkan aplikasi dengan baik.

Jika Anda baru mulai belajar Laravel dari nol, pastikan untuk terus mencoba membuat proyek sederhana agar lebih terbiasa dengan strukturnya.

Komentar