fherryfherry / super-framework-engine
The core of super framework
Package info
github.com/fherryfherry/super-framework-engine
pkg:composer/fherryfherry/super-framework-engine
Requires
- php: ^7.2|^8.0
- ext-curl: *
- ext-gd: *
- ext-json: *
- ext-openssl: *
- ext-pdo: *
- jenssegers/blade: ^1.3
- lavary/crunz: ^2.0
- nesbot/carbon: ^2.39
- nikic/fast-route: ^1.3
- philipp15b/php-i18n: ^4.0
- robmorgan/phinx: ^0.12.6
- vlucas/phpdotenv: ^5.2
Requires (Dev)
- phpunit/phpunit: ^10.0
- v2.0.x-dev
- v2.0.13
- v2.0.12
- v2.0.11
- v2.0.10
- v2.0.9
- v2.0.8
- v2.0.7
- v2.0.6
- v2.0.5
- v2.0.4
- v2.0.3
- v2.0.2
- v2.0.1
- v2.0.0
- v1.3.0
- v1.2.8
- v1.2.7
- v1.2.6
- v1.2.5
- v1.2.4
- v1.2.3
- v1.2.2
- v1.2.1
- v1.2.0
- v1.1.36
- v1.1.35
- v1.1.34
- v1.1.33
- v1.1.32
- v1.1.31
- v1.1.30
- v1.1.29
- v1.1.28
- v1.1.27
- v1.1.26
- v1.1.25
- v1.1.24
- v1.1.23
- v1.1.22
- v1.1.21
- v1.1.20
- v1.1.19
- v1.1.18
- v1.1.17
- v1.1.16
- v1.1.15
- v1.1.14
- v1.1.13
- v1.1.12
- v1.1.11
- v1.1.10
- v1.1.9
- v1.1.8
- v1.1.7
- v1.1.6
- v1.1.5
- v1.1.4
- v1.1.3
- v1.1.2
- v1.1.1
- v1.1.0
- v1.0.x-dev
- v1.0.10
- v1.0.9
- v1.0.8
- v1.0.7
- v1.0.6
- v1.0.5
- v1.0.4
- v1.0.3
- v1.0.2
- v1.0.1
- v1.0
- dev-development
- dev-enhancement/config-on-failed
- dev-enhancement/request-helper
- dev-fix/response-code
- dev-fix/composer-php-version
- dev-fix/migration
- dev-master
This package is auto-updated.
Last update: 2026-03-12 07:06:17 UTC
README
Core engine untuk PHP SuperFramework. Framework ini dirancang untuk kecepatan, kemudahan penggunaan, dan arsitektur yang bersih mengikuti standar modern PHP 8.3+.
Fitur Utama
- PSR-12 Compliant: Codebase yang rapi dan konsisten.
- PHP 8.3 Ready: Memanfaatkan fitur terbaru seperti typed properties, return types, dan match expressions.
- Service Container: Dependency Injection container yang powerful untuk manajemen objek.
- Advanced ORM: Fluent interface dengan dukungan eager loading, caching, dan transaksi.
- Active Record: Implementasi model yang intuitif.
- Blade Templating: Integrasi dengan engine template Laravel Blade.
Prasyarat
- PHP >= 8.3
- Extension:
pdo,json,openssl,curl,gd
Instalasi
composer require fherryfherry/super-framework-engine
Konfigurasi
Pastikan Anda memiliki file konfigurasi di direktori configs/:
Database (configs/Database.php)
return [ 'driver' => 'mysql', // mysql, pgsql, sqlite, sqlsrv 'host' => '127.0.0.1', 'database' => 'super_db', 'username' => 'root', 'password' => '', ];
Penggunaan ORM
Inisialisasi
Anda dapat menggunakan helper global db() untuk memulai query:
use SuperFrameworkEngine\App\UtilORM\ORM; // Ambil data berdasarkan ID $user = db('users')->find(1); // Ambil semua data $users = db('users')->all();
Query Builder
$users = db('users') ->select('name', 'email') ->where('status = ?', ['active']) ->whereIn('role_id', [1, 2]) ->orderBy('created_at desc') ->limit(10) ->get();
Eager Loading
Mencegah masalah N+1 dengan memuat relasi sekaligus:
// Mengasumsikan ada kolom user_id di tabel posts $posts = db('posts')->with('users')->all();
Caching
Simpan hasil query di cache untuk meningkatkan performa:
// Cache hasil query selama 60 detik $products = db('products')->remember(60)->all();
Transaksi
Kelola transaksi database secara aman:
use SuperFrameworkEngine\App\UtilORM\ORM; ORM::beginTransaction(); try { db('orders')->insert([...]); db('inventory')->update([...]); ORM::commit(); } catch (\Exception $e) { ORM::rollback(); }
Raw SQL
Gunakan query SQL mentah dengan parameter binding:
$results = db()->raw("SELECT * FROM users WHERE age > ?", [25])->fetchAll();
Model (Active Record)
Definisikan model Anda dengan mewarisi SuperFrameworkEngine\App\UtilModel\Model:
namespace App\Models; use SuperFrameworkEngine\App\UtilModel\Model; class User extends Model { protected ?string $table = 'users'; public $id; public $name; public $email; }
Operasi Model
// Simpan data baru $user = new User(); $user->name = "Ferry"; $user->save(); // Update data $user = User::findById(1); $user->name = "Updated Name"; $user->save(); // Hapus data User::delete(1); // Pagination $data = User::paginate(15); // Mengembalikan array ['data' => [...], 'total' => 100, 'links' => '...']
Dependency Injection
Gunakan Container untuk manajemen dependensi:
use SuperFrameworkEngine\Foundation\Container; $container = Container::getInstance(); // Binding $container->singleton(MyService::class, fn() => new MyService()); // Resolving $service = $container->make(MyService::class);
Helper Global
db($table): Memulai query ORM.config($key, $default): Mengambil nilai konfigurasi.request($name, $default): Mengambil data input (GET/POST/FILES).dd(...$args): Dump and Die untuk debugging.base_url($path): Menghasilkan URL absolut aplikasi.
Testing
Framework ini menggunakan PHPUnit untuk pengujian:
./vendor/bin/phpunit
Lisensi
Proyek ini berlisensi MIT.