Rapulo adalah framework PHP yang menggabungkan kemudahan Laravel (MVC, ORM, routing) dengan pendekatan komponen UI terinspirasi React, tanpa pemisahan frontend dan backend. Rapulo menggunakan struktur berbasis fitur untuk mengelompokkan kode berdasarkan fungsionalitas (misalnya, Auth, Dashboard), membuat pengembangan lebih terorganisir dan skalabel.
- Komponen UI Reaktif: Bangun UI dengan komponen PHP yang mendukung props dan state.
- Routing dan Middleware: Sistem routing sederhana dengan dukungan middleware untuk autentikasi dan validasi.
- ORM Sederhana: Interaksi database menggunakan kelas Database yang terinspirasi Eloquent.
- CLI Terintegrasi: Alat baris perintah untuk scaffolding komponen, controller dan model.
- Struktur Berbasis Fitur: Semua kode (komponen, controller, model, view) dikelompokkan berdasarkan fitur.
- PHP 7.4 atau lebih tinggi (disarankan PHP 8.x).
- Composer untuk manajemen dependensi.
-
Clone repository ini: Jalankan perintah berikut(for Arch Linux):
pacman -S git git clone https://github.com/rplvrtha/Rapulo
Ini akan menghasilkan direktori Rapulo
dengan struktur proyek lengkap.
- Masuk ke Direktori Proyek:
cd Rapulo
- Instal Dependensi:
composer install
- Konfigurasi Database (Opsional):
- Buat database (misalnya, di MySQL):
CREATE DATABASE my_app;
- Edit
app/Config/database.php
untuk menyesuaikan kredensial:
return [
'driver' => 'mysql',
'host' => 'localhost',
'database' => 'my_app',
'username' => 'your_username',
'password' => 'your_password',
'charset' => 'utf8mb4',
];
- Jalankan Server: Gunakan CLI untuk menjalankan server pengembangan:
php rapulo serve
Atau dengan host/port khusus:
php rapulo serve 127.0.0.1:8080
Buka http://localhost:8000/login
di browser untuk melihat halaman login default.
Rapulo/
├── app/
│ ├── Features/
│ │ ├── Auth/
│ │ │ ├── LoginComponent.php # Komponen UI untuk login
│ │ │ ├── AuthController.php # Logika autentikasi
│ │ │ ├── UserModel.php # Model untuk user
│ │ │ ├── Login.view.php # Template untuk login
│ ├── Core/
│ │ ├── Component.php # Base class untuk komponen
│ │ ├── Router.php # Sistem routing
│ │ ├── Database.php # Koneksi dan ORM
│ ├── Config/
│ │ ├── app.php # Konfigurasi aplikasi
│ │ ├── database.php # Konfigurasi database
├── public/
│ ├── index.php # Entry point aplikasi
│ ├── assets/ # CSS, gambar, dll.
├── resources/
│ ├── views/ # Template global
│ ├── styles/ # File CSS
├── routes/
│ ├── web.php # Web routes
│ ├── api.php # API routes
├── composer.json # Manajemen dependensi
├── rapulo # CLI untuk scaffolding
Rapulo menyediakan alat baris perintah untuk mempercepat pengembangan:
- Membuat Fitur Baru:
php rapulo make:feature <nama-fitur>
Contoh: php rapulo make:feature Dashboard
- Membuat Komponen:
php rapulo make:component <nama-komponen> <nama-fitur>
Contoh: php rapulo make:component Dashboard Dashboard
- Membuat Controller:
php rapulo make:controller <nama-controller> <nama-fitur>
Contoh: php rapulo make:controller Dashboard Dashboard
- Membuat Model:
php rapulo make:model <nama-model> <nama-fitur>
Contoh: php rapulo make:model Data Dashboard
- Menjalankan Server:
php rapulo serve
-
Cek Rute: Akses
http://<host>:<port>/?debug_routes=1
untuk melihat daftar rute yang terdaftar. -
Aktifkan Error Reporting: Tambahkan di
public/index.php
:
error_reporting(E_ALL);
ini_set('display_errors', 1);
- Buat fitur baru:
php rapulo make:feature Dashboard
- Buat komponen, controller, dan model:
php rapulo make:component Dashboard Dashboard
php rapulo make:controller Dashboard Dashboard
php rapulo make:model Data Dashboard
- Tambahkan rute di
routes/web.php
:
$router->get('/dashboard', [Rapulo\Features\Dashboard\DashboardController::class, 'index']);
- Jalankan server dan uji:
php rapulo serve
Akses http://localhost:8000/dashboard
.
Untuk produksi:
-
Konfigurasi web server (Apache/Nginx) untuk mengarahkan permintaan ke
public/index.php
. -
Contoh konfigurasi Apache:
<VirtualHost *:80>
DocumentRoot /path/to/my-app/public
ServerName my-app.local
<Directory /path/to/my-app/public>
AllowOverride All
Require all granted
FallbackResource /index.php
</Directory>
</VirtualHost>
-
Atur
debug => false
diapp/Config/app.php
. -
Optimalkan autoload:
composer dump-autoload --optimize
Rapulo dilisensikan di bawah MIT License.