fherryfherry/super-framework-engine 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

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
  • 点击次数: 3
  • 依赖项目数: 2
  • 推荐数: 0

GitHub 信息

  • Stars: 2
  • Watchers: 1
  • Forks: 2
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2021-05-08