Nexa Brif
Nexa Brif adalah query builder yang powerful untuk memudahkan operasi
database dalam framework Nexa. Library ini menyediakan interface yang
intuitif untuk melakukan berbagai operasi database seperti select,
insert, update, delete serta fitur-fitur lanjutan seperti join,
pagination, caching dan file handling.
Cara Penggunaan Dasar
Inisialisasi
$brif = new NexaBrif();
Metode-metode yang Tersedia
1. Memilih Tabel
$brif->table('nama_tabel');
2. Select Data
// Select semua kolom
$brif->table('users')->get();
// Select kolom tertentu
$brif->table('users')
->select(['nama', 'email'])
->get();
3. Where Clause
// Where sederhana
$brif->table('users')
->where('age', '>', 18)
->get();
// Multiple where
$brif->table('users')
->where('status', 'active')
->where('role', 'admin')
->get();
// Where dengan array
$brif->table('users')
->where([
'status' => 'active',
'role' => 'admin'
])
->get();
4. Join
// Inner Join
$brif->table('users')
->join('orders', 'users.id', '=', 'orders.user_id')
->get();
// Left Join
$brif->table('users')
->leftJoin('orders', 'users.id', '=', 'orders.user_id')
->get();
5. Group By dan Having
$brif->table('orders')
->select(['user_id', 'COUNT(*) as total_orders'])
->groupBy('user_id')
->having('total_orders', '>', 5)
->get();
6. Order By
$brif->table('users')
->orderBy('nama', 'ASC')
->get();
7. Limit dan Offset
$brif->table('users')
->limit(10)
->offset(20)
->get();
8. Insert Data
$brif->table('users')
->insert([
'nama' => 'John Doe',
'email' => 'john@example.com',
'password' => 'hashedpassword'
]);
9. Update Data
$brif->table('users')
->where('id', 1)
->update([
'nama' => 'John Doe Updated',
'status' => 'inactive'
]);
10. Delete Data
$brif->table('users')
->where('id', 1)
->delete();
Contoh Penggunaan Lengkap
$brif = new NexaBrif();
// Contoh query kompleks
$users = $brif->table('users')
->select(['users.id', 'users.nama', 'orders.total'])
->leftJoin('orders', 'users.id', '=', 'orders.user_id')
->where('users.status', 'active')
->groupBy('users.id')
->having('orders.total', '>', 1000)
->orderBy('users.nama', 'ASC')
->limit(10)
->get();