fherryfherry/super-framework-engine
最新稳定版本:v2.0.13
Composer 安装命令:
composer require fherryfherry/super-framework-engine
包简介
The core of super framework
README 文档
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.
统计信息
- 总下载量: 292
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 2
- 点击次数: 2
- 依赖项目数: 2
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2021-05-08