Proyek ini adalah contoh sederhana implementasi pola Model-View-Controller (MVC) menggunakan PHP untuk tujuan edukasi.
mvc-simple/
├── app/                 # Folder aplikasi (untuk pengembangan lebih lanjut)
├── config/              # File konfigurasi
│   └── database.php     # Konfigurasi database
├── controllers/         # Controller
│   └── HomeController.php
├── models/              # Model
│   └── UserModel.php
├── views/               # View (tampilan)
│   ├── home.php         # Halaman daftar pengguna
│   ├── user_detail.php  # Halaman detail pengguna
│   ├── create_user.php  # Form tambah pengguna
│   └── edit_user.php    # Form edit pengguna
├── public/              # Folder public (assets, css, js)
├── index.php            # Entry point aplikasi
├── setup.php            # Script setup database
├── .htaccess            # Konfigurasi URL rewriting
└── README.md            # Dokumentasi
- Pastikan Laragon sudah berjalan
- Clone atau download proyek ini ke folder www Laragon
- Buka browser dan jalankan setup database:
http://localhost/mvc-simple/setup.php
- Akses aplikasi:
http://localhost/mvc-simple/
Aplikasi ini memiliki fitur CRUD (Create, Read, Update, Delete) sederhana:
- Read: Menampilkan daftar pengguna
- Create: Menambah pengguna baru
- Update: Mengedit data pengguna
- Delete: Menghapus pengguna
- Bertanggung jawab atas logika data dan interaksi dengan database
- Mengelola operasi CRUD pada tabel users
- Tidak bergantung pada View atau Controller
- Bertanggung jawab atas tampilan yang dilihat user
- Menerima data dari Controller dan menampilkannya
- Tidak mengandung logika bisnis yang kompleks
- Bertindak sebagai penghubung antara Model dan View
- Menerima request dari user
- Memanggil Model untuk mendapatkan/mengubah data
- Mengirim data ke View untuk ditampilkan
Aplikasi menggunakan URL routing sederhana:
- /→- HomeController::index()(daftar pengguna)
- /home/user/{id}→- HomeController::user($id)(detail pengguna)
- /home/create→- HomeController::create()(form tambah)
- /home/store→- HomeController::store()(proses tambah)
- /home/edit/{id}→- HomeController::edit($id)(form edit)
- /home/update/{id}→- HomeController::update($id)(proses update)
- /home/delete/{id}→- HomeController::delete($id)(hapus)
Database menggunakan MySQL dengan konfigurasi default Laragon:
- Host: localhost
- Database: mvc_simple (otomatis dibuat saat setup)
- Username: root
- Password: (kosong)
Tabel: users
CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    email VARCHAR(100) NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);Data Sampel:
INSERT INTO users (name, email) VALUES
    ('John Doe', 'john@example.com'),
    ('Jane Smith', 'jane@example.com'),
    ('Bob Johnson', 'bob@example.com');- 
Otomatis (Recommended): - Buka browser: http://localhost/mvc-simple/setup.php
- Database dan tabel akan dibuat otomatis
 
- Buka browser: 
- 
Manual: - Import file database_structure.sqlmelalui phpMyAdmin
- Atau jalankan query SQL di command line
 
- Import file 
Lihat file docs/mvc_flow.php untuk visualisasi lengkap alur data MVC dengan database.
- CREATE: INSERT INTO users (name, email) VALUES (?, ?)
- READ: SELECT * FROM users ORDER BY created_at DESC
- UPDATE: UPDATE users SET name = ?, email = ? WHERE id = ?
- DELETE: DELETE FROM users WHERE id = ?
Proyek ini dapat dikembangkan lebih lanjut dengan:
- Menambah Controller baru untuk fitur lain
- Menambah Model baru untuk tabel lain
- Mengimplementasikan autentikasi user
- Menambah validasi input yang lebih robust
- Menggunakan template engine seperti Twig
- Menambah API endpoints
Proyek ini dirancang untuk tujuan edukasi dan tidak dimaksudkan untuk produksi. Fokus utama adalah memahami konsep MVC pattern dengan implementasi yang sederhana dan mudah dipahami.