Skip to content

rplvrtha/Rapulo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Icon Rapulo

Rapulo Framework

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.

Fitur Utama

  • 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.

Prasyarat

  • PHP 7.4 atau lebih tinggi (disarankan PHP 8.x).
  • Composer untuk manajemen dependensi.

Instalasi

  1. 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.

  1. Masuk ke Direktori Proyek:
cd Rapulo
  1. Instal Dependensi:
composer install
  1. 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',
];
  1. 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.

Struktur Direktori

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

Penggunaan CLI

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

Debugging

  • 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);

Contoh Pengembangan

  1. Buat fitur baru:
php rapulo make:feature Dashboard
  1. Buat komponen, controller, dan model:
php rapulo make:component Dashboard Dashboard
php rapulo make:controller Dashboard Dashboard
php rapulo make:model Data Dashboard
  1. Tambahkan rute di routes/web.php:
$router->get('/dashboard', [Rapulo\Features\Dashboard\DashboardController::class, 'index']);
  1. Jalankan server dan uji:
php rapulo serve

Akses http://localhost:8000/dashboard.

Deployment

Untuk produksi:

  1. Konfigurasi web server (Apache/Nginx) untuk mengarahkan permintaan ke public/index.php.

  2. 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>
  1. Atur debug => false di app/Config/app.php.

  2. Optimalkan autoload:

composer dump-autoload --optimize

Lisensi

Rapulo dilisensikan di bawah MIT License.

Copyright by Rapulo Team.

About

A Simple PHP Framework

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published