nufat / nuphp
nuPHP Framework - Light & Fast PHP MVC Framework
Package info
Language:CSS
Type:project
pkg:composer/nufat/nuphp
Requires
- php: ^8.1 || ^8.2 || ^8.3
- catfan/medoo: ^2.1
- dompdf/dompdf: ^3.0
- fakerphp/faker: ^1.23
- firebase/php-jwt: ^6.10
- guzzlehttp/guzzle: ^7.8
- illuminate/database: ^10.0 || ^11.0
- illuminate/pagination: ^10.0 || ^11.0
- illuminate/support: ^10.0 || ^11.0
- illuminate/view: ^10.0 || ^11.0
- lasserafn/php-initial-avatar-generator: ^4.0
- nufat/cli: ^3.0.0
- nufat/nutemplete: ^3.0.0
- phpmailer/phpmailer: ^6.9
- phpoffice/phpspreadsheet: ^2.0 || ^1.29
- picqer/php-barcode-generator: ^2.4 || ^3.0
- steampixel/simple-php-router: ^0.7.1
- vlucas/phpdotenv: ^5.6
README
nuPHP adalah PHP Framework MVC (dan NoMVC) yang ringan, super cepat, fleksibel, serta didesain untuk mempercepat pembuatan aplikasi web modern tanpa overhead berlebihan.
🌟 Fitur Utama (v3.0.4)
- ⚡ Lightweight & Super Fast: Beban runtime minimal dengan performa tinggi.
- 🗄️ Multi-ORM Support: Mendukung Illuminate Eloquent ORM (Laravel Database) dan Medoo Database Wrapper secara bawaan.
- 🎨 Nutemplete & Blade View Engine: Didukung oleh Nutemplete v3.0.0 (dengan direktif
@auth,@guest,@json,@asset, dan<nu-component>). - 🛠️ Built-in CLI Tool (
php nuv3.0.0): Generator controller/model, route inspector (route:list), konsol interaktif (tinker), serta scaffolding UI auth (ui:auth). - 📊 Mini Debugbar: Floating Dev Toolbar otomatis saat
APP_DEBUG=true(cek execution time, memory peak, & SQL query count). - 🔄 Smart Auto-Routing: Routing dinamis berbasis struktur controller & view, serta opsi kustomisasi rute manual.
- 🛡️ Environment & CSRF Protection: Manajemen
.envaman dengan perlindungan token CSRF. - 📦 PSR-4 Compliant: Mengikuti standar autoloading modern PHP.
📋 Persyaratan System
- PHP:
^8.1,^8.2, atau^8.3 - Composer: Versi 2.x
- Ekstensi PHP:
PDO,pdo_mysql/pdo_sqlite,mbstring,json,fileinfo
🚀 Cara Instalasi
1. Menggunakan Composer
composer create-project nufat/nuphp nama-proyek
2. Menggunakan Git Clone
git clone https://github.com/nufatID/nuPHP.git nama-proyek
cd nama-proyek
composer install
⚙️ Konfigurasi Environment
Salin file .env.example menjadi .env lalu sesuaikan konfigurasi database dan aplikasi:
cp .env.example .env
Isi file .env:
APP_ENV=development APP_DEBUG=true APP_KEY=base64:nuPHPSecretKey12345678901234567890 BASE_DIR=/ DB_DRIVER=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_USER=root DB_PASS=secret DB_NAME=nuphp AUTH=false
💻 Penggunaan CLI (php nu)
Framework nuPHP dilengkapi skrip CLI interaktif untuk mempermudah alur kerja pengembangan:
# Menjalankan local development server (default port 8000) php nu serve 8000 # Membuat Controller baru di app/Controllers/ php nu make:controller UserController # Membuat Model Eloquent baru di app/Models/ php nu make:model User # Menampilkan versi nuPHP Framework php nu version
📁 Struktur Direktori
nuPHP/
├── app/
│ ├── Controllers/ # Berkas Controller aplikasi
│ ├── Models/ # Berkas Model Eloquent / PDO
│ ├── Routes.php # Konfigurasi Routing Aplikasi
│ └── index.php # Helper aplikasi
├── assets/ # Static Assets (CSS, JS, Images)
├── cache/ # Cache compiled views
├── core/
│ ├── classes/ # Core helper classes (Database, Auth, CSRF, dll)
│ ├── config.php # Inisialisasi konfigurasi & env
│ └── Connection.php # Bootstrapper database connection
├── helper/ # Custom function helpers
├── resource/ # Components & elements
├── templates/ # Layout & template Blade
├── views/ # File tampilan view (.nu.php)
├── .env.example # Template konfigurasi environment
├── composer.json # Autoload & dependensi Composer
├── index.php # Entry point aplikasi
└── nu # Executable CLI tool nuPHP
📖 Panduan Penggunaan
1. Membuat Model (Eloquent)
Buat model di app/Models/User.php:
namespace App\Models; use Illuminate\Database\Eloquent\Model; class User extends Model { protected $table = 'users'; protected $guarded = []; }
2. Membuat Controller
Buat controller di app/Controllers/UserController.php:
use App\Models\User; class UserController { public function index() { $users = User::all(); View('users/index', ['users' => $users]); } public function detail($id) { $user = User::find($id); if (!$user) { header('HTTP/1.0 404 Not Found'); return View('404'); } View('users/detail', ['user' => $user]); } }
3. Konfigurasi Route Custom
Tambahkan rute kustom di app/Routes.php:
use Steampixel\Route; // Explicit Custom Route Route::add('/dashboard', function () { View('dashboard'); }); // Route dengan controller & method Route::add('/user/profile/([0-9]+)', function ($id) { $controller = new UserController(); $controller->detail($id); });
4. Helper Global & Fitur Terintegrasi
nuPHP v3.0.0 dilengkapi helper global dan fitur terintegrasi ala Laravel:
request($key = null, $default = null)— Mengambil data input request GET/POST.session($key = null, $default = null)— Membaca/menyimpan data session secara instan.session_flash($key, $val)&flash($key)— Notifikasi flash message 1x baca (terintegrasi dengan direktif Nutemplete@flash('success')).validator($data, $rules)— Form request validation (required,email,numeric,min,max).middleware($names)— Pipeline middleware runner (App\Core\Middleware).resource($data, $callback)— API Resource JSON Transformer (App\Core\Resource).redirect($url)— Redirect URL dengan penanganan base URL otomatis.response($data, $status = 200)— Mengirimkan JSON response dengan header HTTP.env($key, $default = null)— Membaca nilai dari konfigurasi.env.db()— Mengakses kelas instans Eloquent DB Capsule.
🤝 Kontribusi
Pull request sangat diterima! Untuk perubahan besar, silakan buka issue terlebih dahulu untuk mendiskusikan apa yang ingin Anda ubah.
🌐 Informasi & Lisensi
- Website: https://webdev.nufat.id/
- Repository: https://github.com/nufatID/nuPHP
- License: MIT License