FluentPDO adalah pembuat kueri PHP SQL menggunakan PDO. Ini adalah perpustakaan cepat dan ringan yang menampilkan pembuat gabungan cerdas, yang secara otomatis membuat gabungan tabel untuk Anda.
Antarmuka yang mudah untuk membuat kueri yang kuat
Mendukung database apa pun yang kompatibel dengan PDO
Kemampuan untuk membuat kueri SELECT, INSERT, UPDATE & DELETE yang kompleks dengan sedikit kode
Ketik petunjuk untuk metode ajaib dengan penyelesaian kode di IDE cerdas
Rilis FluentPDO yang stabil dan dipelihara secara aktif. Secara resmi mendukung PHP 7.3 hingga PHP 8.0, tetapi dapat bekerja dengan versi PHP 7 sebelumnya.
Rilis lama FluentPDO. Itu tidak lagi didukung dan tidak akan dipelihara atau diperbarui. Versi ini bekerja dengan PHP 5.4 hingga 7.1.
Versi ini adalah penulisan ulang penuh Fluent dari awal. Keuntungan utamanya adalah penggunaan memori yang jauh lebih sedikit dan kinerja yang jauh lebih besar dalam pembuatan kueri. Ini juga menerapkan beberapa batasan tambahan untuk membuat kueri lebih mudah dibaca dan dikelola. Dokumentasi juga merupakan permintaan yang sangat umum, dan versi 3 didokumentasikan sepenuhnya seiring dengan pengembangan. Detail dan metrik akan diposting setelah tersedia.
Sitepoint - Memulai dengan FluentPDO
Cara yang lebih disukai untuk menginstal FluentPDO adalah melalui komposer.
Tambahkan baris berikut di file composer.json
Anda:
"require": { ... "envms/fluentpdo": "^2.2.0" }
perbarui dependensi Anda dengan composer update
, dan selesai!
Jika Anda memilih untuk tidak menggunakan composer, unduh rilis terbaru, buat direktori Envms/FluentPDO
di direktori perpustakaan Anda, dan masukkan repositori ini ke dalamnya. Terakhir, tambahkan:
memerlukan '[lib-dir]/Envms/FluentPDO/src/Query.php';
ke bagian atas aplikasi Anda. Catatan: Anda memerlukan pemuat otomatis untuk menggunakan FluentPDO tanpa mengubah kode sumbernya.
Buat instance PDO baru, dan teruskan instance tersebut ke FluentPDO:
$pdo = PDO baru('mysql:dbname=fluentdb', 'pengguna', 'kata sandi');$fluent = new EnvmsFluentPDOQuery($pdo);
Kemudian, membuat kueri menjadi cepat dan mudah:
$query = $lancar->dari('komentar') ->di mana('artikel.diterbitkan_at > ?', $tanggal) ->orderBy('diterbitkan_di DESC') ->batas(5);
yang akan membuat kueri di bawah ini:
PILIH komentar.*DARI komentarKIRI GABUNG artikel DI article.id = komentar.article_idWHERE article.published_at > ?ORDER BY article.published_at DESCLIMIT 5
Untuk mendapatkan data dari pilihan, yang kita lakukan hanyalah mengulang array yang dikembalikan:
foreach ($kueri sebagai $baris) {echo "$baris['judul']n"; }
Mari kita mulai dengan gabungan tradisional, di bawah ini:
$query = $lancar->dari('artikel') ->leftJoin('pengguna PADA pengguna.id = artikel.pengguna_id') ->pilih('pengguna.nama');
Itu cukup bertele-tele, dan tidak terlalu cerdas. Jika tabel Anda menggunakan nama kunci primer dan asing yang tepat, Anda dapat menyingkat nama di atas menjadi:
$query = $lancar->dari('artikel') ->kiriGabung('pengguna') ->pilih('pengguna.nama');
Itu lebih baik, tapi tidak ideal. Namun, akan lebih mudah untuk tidak menulis gabungan apa pun :
$query = $lancar->dari('artikel') ->pilih('pengguna.nama');
Luar biasa, bukan? FluentPDO dapat membuatkan gabungan untuk Anda, dengan menambahkan nama tabel asing ke kolom yang diminta.
Ketiga cuplikan di atas akan membuat kueri yang sama persis:
PILIH artikel.*, nama pengguna DARI artikel KIRI GABUNG pengguna PADA user.id = article.user_id
Terakhir, selalu merupakan ide bagus untuk mengosongkan sumber daya segera setelah mereka selesai menjalankan tugasnya:
$lancar->tutup();
$query = $fluent->from('article')->where('id', 1)->fetch();$query = $fluent->from('user', 1)->fetch(); // versi lebih pendek jika memilih satu baris berdasarkan kunci utama
$values = array('title' => 'artikel 1', 'konten' => 'konten 1');$query = $fluent->insertInto('article')->values($values)->execute( );$query = $fluent->insertInto('artikel', $values)->execute(); // versi lebih pendek
$set = array('published_at' => new FluentLiteral('NOW()'));$query = $fluent->update('article')->set($set)->where('id', 1 )->execute();$query = $fluent->update('artikel', $set, 1)->execute(); // versi lebih pendek jika memperbarui satu baris dengan kunci utama
$query = $fluent->deleteFrom('article')->where('id', 1)->execute();$query = $fluent->deleteFrom('article', 1)->execute(); // versi lebih pendek jika menghapus satu baris dengan kunci utama
Catatan : Kueri INSERT, UPDATE dan DELETE hanya akan dijalankan setelah Anda memanggil ->execute()
Gratis untuk penggunaan komersial dan non-komersial di bawah lisensi Apache 2.0 atau GPL 2.0.