Download the PHP package augustpermana/hypervel-meta-generator without Composer
On this page you can find all versions of the php package augustpermana/hypervel-meta-generator. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download augustpermana/hypervel-meta-generator
More information about augustpermana/hypervel-meta-generator
Files in augustpermana/hypervel-meta-generator
Package hypervel-meta-generator
Short Description A Hypervel package to generate and manage metadata for models
License MIT
Homepage https://github.com/agus-gian/hypervel-meta-generator
Informations about the package hypervel-meta-generator
Hypervel Meta Generator
Hypervel Meta Generator adalah package powerful yang memungkinkan Anda dengan mudah melampirkan dan mengelola metadata untuk model Eloquent Anda tanpa memodifikasi tabel database utama mereka. Package ini menyediakan sistem key-value yang fleksibel dengan fitur deteksi tipe otomatis, casting, dan perintah artisan yang berguna untuk menyederhanakan instalasi dan maintenance.
🚀 Dibangun untuk Hypervel Framework - Framework PHP high-performance dengan dukungan coroutine native berbasis Swoole.
Daftar Isi
- Fitur
- Instalasi
- Penggunaan
- Melampirkan Metadata ke Model
- Mengelola Metadata
- Artisan Commands
make:metadatametadata:clean-orphaned
- Konfigurasi
- Perbedaan dengan Laravel Version
- License
Fitur
✨ Auto Type Detection - Deteksi tipe data otomatis (string, integer, boolean, json, datetime, dll) ✨ Type Casting - Casting otomatis saat retrieve data ✨ Query Scopes - Query builder scopes untuk filter berdasarkan metadata ✨ Artisan Commands - Generate metadata system dan clean orphaned records ✨ Coroutine Safe - Dioptimasi untuk environment Swoole/Hypervel dengan coroutine support ✨ Zero Table Modification - Tidak perlu mengubah tabel database utama
Instalasi
Ada dua cara untuk mengintegrasikan Hypervel Meta Generator ke dalam project Anda:
1. Via Packagist (Coming Soon)
Hypervel akan secara otomatis menemukan service provider melalui package discovery.
2. Menggunakan Local Repository
Jika package belum dipublish di Packagist, tambahkan sebagai local repository. Modifikasi composer.json project Anda:
Kemudian jalankan:
Penggunaan
Hypervel Meta Generator memungkinkan Anda melampirkan metadata ke model tanpa memodifikasi tabel database asli.
Melampirkan Metadata ke Model
-
Generate Metadata Files:
Jalankan artisan command untuk setup metadata system untuk model yang ada. Contoh untuk model
Product:Saat Anda menjalankan command ini, akan melakukan:
- Membuat Meta Model File: Generate file baru (contoh:
ProductMeta.php) di direktoriapp/Models - Membuat Migration: Generate migration untuk membuat tabel metadata (contoh:
product_meta)
- Membuat Meta Model File: Generate file baru (contoh:
-
Update Model Asli:
Anda harus secara manual update model asli (contoh:
Product.php) untuk menyertakan traitHasMetadata: - Jalankan Migration:
Mengelola Metadata
Setelah setup, Anda dapat menggunakan berbagai method untuk manage metadata:
Set Single Meta
Get Single Meta
Set Multiple Meta
Sync Meta (Replace All)
Check Meta Exists
Remove Meta
Query dengan Meta Scope
Artisan Commands
make:metadata
Generate metadata system untuk model yang sudah ada.
Command ini akan:
- Membuat model meta baru (
ProductMeta.php) - Membuat migration untuk tabel metadata
metadata:clean-orphaned
Membersihkan orphaned metadata records (metadata yang parent recordnya sudah dihapus).
⚠️ PERINGATAN: Command ini akan menghapus data dari database. Backup database Anda sebelum menjalankan command ini.
Konfigurasi
Package ini tidak memerlukan konfigurasi khusus. Namun, Anda dapat customize:
Custom Meta Model Location
Secara default, meta model akan dibuat di App\Models. Jika Anda ingin menggunakan lokasi berbeda, override method getMetaModelClass() di model Anda:
Supported Data Types
Package ini secara otomatis mendeteksi dan mendukung tipe data berikut:
string- String pendektext- String panjang (> 255 chars)longtext- String sangat panjang (> 65535 chars)integer- Bilangan bulatfloat/double- Bilangan desimaldecimal- Bilangan desimal presisiboolean- True/Falsejson- Array atau Objectdate- Tanggal (Y-m-d)time- Waktu (H:i:s)datetime/timestamp- Tanggal dan waktubinary- Binary data (base64 encoded)
Perbedaan dengan Laravel Version
Package ini adalah adaptasi dari augustpermana/laravel-meta-generator untuk Hypervel Framework dengan perubahan berikut:
| Fitur | Laravel Version | Hypervel Version |
|---|---|---|
| Framework | Laravel 8+ | Hypervel 0.3+ |
| Base Classes | Illuminate\* |
Hypervel\* |
| PHP Version | >= 7.3 | >= 8.2 |
| Coroutine Support | ❌ | ✅ |
| Swoole Extension | Optional | Required |
| Performance | Standard | High (Coroutine-based) |
| Package Discovery | laravel key |
hypervel key |
Performance Tips
1. Eager Loading Metadata
2. Batch Operations
3. Indexing
Tabel metadata secara otomatis memiliki composite index pada (foreign_key, key) untuk query yang lebih cepat.
Requirements
- PHP: >= 8.2
- Hypervel Framework: ^0.3
- Swoole Extension: >= 5.0
- ext-json: *
Contributing
Kontribusi sangat diterima! Silakan buat pull request atau buka issue di repository GitHub.
License
Package ini adalah open-source software yang dilisensikan di bawah MIT license.
Author
Agus Permana
- Email: [email protected]
- GitHub: @agus-gian
Credits
Package ini terinspirasi dari kebutuhan untuk mengelola metadata dinamis tanpa mengubah struktur tabel database, dengan optimasi khusus untuk environment Hypervel yang high-performance.
Happy Coding with Hypervel! 🚀
All versions of hypervel-meta-generator with dependencies
hypervel/framework Version ^0.3
ext-json Version *
ext-swoole Version >=5.0