Bisakah saya menggunakan mongodb dengan php?

MongoDB adalah pilihan tepat untuk sejumlah aplikasi. Di dunia PHP, kita juga dapat mencoba sesuatu yang lebih dari sekadar tumpukan LAMP dan memberikan lebih banyak kebebasan pada skema database kita. Salah satu Object Relational Mappers [ORM] paling populer untuk PHP adalah Doctrine yang kebetulan juga memiliki implementasi Object Document Mapping [ODM] yang sangat baik untuk MongoDB. Kami tidak akan merinci tentang keuntungan atau kerugian dari database NoSql dan SQL tetapi lihat bagaimana kami dapat membangun aplikasi yang sangat sederhana jika kami telah memutuskan untuk menggunakan Mongo

Kode sumber lengkap tersedia di repositori berikut

jkapuscik2/mongo-shopping-cart

Berkontribusi pada pengembangan jkapuscik2/mongo-shopping-cart dengan membuat akun di GitHub

github. com

Kita perlu membuat aplikasi keranjang belanja dengan REST API yang memungkinkan kita melakukannya

  • menambahkan produk baru ke katalog
  • memperbarui nama produk
  • membuat keranjang belanja baru
  • menambah dan menghapus produk dari keranjang belanja
  • merekam kapan suatu produk ditambahkan ke keranjang

Kami juga memiliki serangkaian persyaratan

  • harga suatu produk harus positif dan memiliki mata uang tertentu EUR, PLN, atau USD
  • kami hanya dapat memiliki satu produk dari jenis tertentu dalam satu keranjang dan tidak lebih dari 4 produk sekaligus

Kami akan menggunakan framework Symfony karena terintegrasi dengan baik dengan Doctrine ODM. Kita dapat menginstal perpustakaan dan menghasilkan konfigurasi dasar dengan menjalankan perintah berikut

composer config extra.symfony.allow-contrib truecomposer require doctrine/mongodb-odm-bundle

Kami akan mengakses database dengan cara yang sama seperti yang kami lakukan dengan ORM di Doctrine. Kami menggunakan anotasi dalam model yang akan menunjukkan variabel kelas mana yang harus dipertahankan. Di Product_ kami, kami memberikan nama, harga, dan mata uang sebagai argumen konstruktor. Tidak banyak logika yang diperlukan sehingga kelasnya sangat mudah

Secara default, koleksi memiliki nama yang sama dengan model yang menggunakannya. Kami dapat menyesuaikan perilaku ini dengan memberikan parameter collectionName dalam anotasi Document. Kami juga dapat menyimpan beberapa model berbeda dalam satu koleksi karena MongoDb sangat fleksibel dalam hal skema database

Product menerima objek nilai yang divalidasi yang menegakkan kebenaran data. Kami tidak akan membahas detail penerapannya di sini, ini dapat ditemukan di Github

Doktrin ODM membuat penguncian optimis menjadi sangat sederhana. Mekanisme itu akan memastikan bahwa tidak ada yang memodifikasi model pada saat yang sama dengan kami dengan membandingkan atribut version. Yang harus kami lakukan adalah meletakkan satu anotasi @ODM\Version

Model keranjang belanja sedikit lebih rumit karena kami harus memastikan semua aturan yang terkait dengan penambahan dan penghapusan produk terpenuhi. Kami dapat menyimpan referensi ke koleksi Produk di Mongo atau menggunakan dokumen yang disematkan. Setiap pendekatan memiliki pro dan kontra. Kami harus menyimpan stempel waktu penambahan produk baru agar dokumen yang disematkan lebih cocok untuk kami. Selain itu, akan lebih efisien

Kami menggunakan data tentang produk dan membuat dokumen tersemat ShoppingCartItem terpisah

Masalah yang mungkin kita temui adalah sinkronisasi data antar koleksi. Ketika seseorang mengubah nama suatu produk, itu tidak akan disebarkan secara otomatis dan kami akan melihat nama yang sudah ketinggalan zaman di keranjang. Kami harus membuat mekanisme sendiri untuk memastikan konsistensi data

Kami mempertahankan model dengan Doctrine Document Manager. Kita dapat menggunakan repositori khusus untuk setiap model atau menggunakan repositori bawaan dengan fungsionalitas dasar. Demi kesederhanaan, kami akan tetap menggunakan yang terakhir. Jika kami membutuhkan lebih banyak penyesuaian, kami harus menambahkan parameter repositoryClass di anotasi @ODM\Document

MongoDB membuktikan dirinya sangat berguna dalam sejumlah kasus penggunaan dan dapat bekerja sangat baik dengan PHP. Ini jelas merupakan alternatif yang menarik untuk kebanyakan mesin basis data umum dalam proyek PHP seperti MySql atau PostgreSQL

Jika Anda menggunakan PHP untuk membuat aplikasi, Anda mungkin ingin berinteraksi dengan database MongoDB dalam kode Anda. Untungnya, mudah untuk terhubung ke database MongoDB dari skrip PHP hanya dengan sedikit penyiapan dan konfigurasi. Dalam artikel ini, kami akan menunjukkan cara menyiapkan koneksi PHP dan MongoDB sehingga Anda dapat mengakses database MongoDB di aplikasi Anda

Prasyarat

Sebelum mencoba mengatur koneksi antara PHP dan MongoDB, beberapa prasyarat penting harus ada

  • Anda harus memastikan bahwa XAMPP atau WAMP sudah diinstal dan dikonfigurasi di sistem Anda

  • MongoDB harus diinstal dan dikonfigurasi pada mesin Anda

  • Anda harus memiliki akses internet untuk mengunduh beberapa file yang diperlukan

Instal Driver PHP MongoDB

Di bagian ini, kami akan memulai proses menyiapkan koneksi PHP dan MongoDB dengan menginstal driver PHP MongoDB di sistem kami. Untuk melakukan ini, kami cukup mengunduh file 'DLL' [Dynamic Link Library] yang diperlukan yang dapat ditemukan di tautan ini. MongoDB PHP

Kami akan meletakkan file unduhan ini di salah satu direktori instalasi PHP kami, yang akan kami diskusikan di bagian selanjutnya

Konfigurasikan PHP dan MongoDB di Windows

Selanjutnya, mari kita tinjau cara mengonfigurasi PHP dengan cara yang memungkinkan koneksi ke MongoDB di lingkungan Windows

  • Pertama, kita buka php. ini ditemukan di direktori XAMPP berikut. C:\xampp\php

  • Selanjutnya, kami menambahkan teks berikut di bagian ekstensi file. extension=php_mongodb.dll

  • Terakhir, kita extract file ‘DLL’ yang sudah kita download tadi ke direktori berikut. C:\xampp\php\ext

Membuat Database Sampel MongoDB

Langkah kita selanjutnya adalah membuat contoh dataset yang bisa kita gunakan dalam tutorial ini

Pertama, kita akan terhubung ke database bernama productdb

Kemudian kita dapat melakukan operasi insertMany[] untuk menambahkan beberapa dokumen tiruan yang dapat kita gunakan untuk tujuan demo. Operasi akan membuat koleksi products dan menambahkan dokumen-dokumen ini ke dalamnya secara bersamaan

db. produk. masukkanBanyak[ [
{ barang. "keyboard", jumlah. 20},
{ barang. "tikus", qty. 40},
{ barang. "catu daya", qty. 30},
{ barang. "cpu", qty. 30},
{ barang. "kartu video", qty. 20},
{ barang. "modul memori", qty. 30 }
] ];

Operasi ini akan mengembalikan respons yang terlihat seperti berikut

{
"diakui". BENAR,
"memasukkanId". [
ObjectId["5e48b471389f0fd56b8b0554"],
ObjectId["5e48b471389f0fd56b8b0555"],
ObjectId["5e48b471389f0fd56b8b0556"],
ObjectId["5e48b471389f0fd56b8b0557"],
ObjectId["5e48b471389f0fd56b8b0558"],
ObjectId["5e48b471389f0fd56b8b0559"]
]
}

Kami dapat memverifikasi bahwa koleksi products_ telah berhasil dibuat menggunakan perintah ini. db.products.find[].pretty[];

Kita harus mendapatkan hasil yang terlihat seperti ini

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

{
"_Indo". ObjectId["5e48b471389f0fd56b8b0554"],
"barang". "papan ketik",
"jumlah". 20
}
{
"_Indo". ObjectId["5e48b471389f0fd56b8b0555"],
"barang". "mouse",
"jumlah". 40
}
{
"_Indo". ObjectId["5e48b471389f0fd56b8b0556"],
"barang". "Sumber Daya listrik",
"jumlah". 30
}
{
"_Indo". ObjectId["5e48b471389f0fd56b8b0557"],
"barang". "cpu",
"jumlah". 30
}
{
"_Indo". ObjectId["5e48b471389f0fd56b8b0558"],
"barang". "kartu video",
"jumlah". 20
}
{
"_Indo". ObjectId["5e48b471389f0fd56b8b0559"],
"barang". "modul memori",
"jumlah". 30
}

Menghubungkan ke Basis Data MongoDB

Di bagian ini, kita akan membuat skrip PHP sederhana yang akan terhubung ke database productdb kita

Mari kita mulai dengan membuat direktori baru bernama 'phpmongo' di direktori htdocs. Kami kemudian dapat membuat file PHP baru yang disebut 'test. php’ dan tambahkan kode berikut ke dalamnya

$mng = new MongoDB\Driver\Manager["mongodb. // localhost. 27017"];
$qry = MongoDB\Driver\Query[[]];

$baris = $mng->executeQuery["productdb. produk", $qry];

foreach [$baris sebagai $baris] {

foreach [$baris sebagai $baris] {
echo nl2br["$baris->item. $baris->qty\n"];
}

}

?>

Kode yang ditampilkan di atas akan membaca data dari koleksi 'produk' yang ada di dalam database 'productdb'. Mari kita lihat lebih dekat apa yang terjadi dalam skrip ini

  • Kami menggunakan $qry = new MongoDB\Driver\Query[[]];_ untuk membuat objek kueri MongoDB dengan larik kosong. Ini memberitahu MongoDB untuk membaca semua kemungkinan data dalam koleksi target

  • Kami kemudian menjalankan kueri terhadap nama koleksi yang ditentukan menggunakan baris kode berikut. $rows = $mng->executeQuery["productdb.products", $qry];

  • Terakhir, kami mengulangi semua dokumen yang cocok dan mencetaknya di halaman

Hasilnya akan terlihat seperti berikut

Kesimpulan

Saat Anda menulis kode PHP dan perlu berinteraksi dengan database, MongoDB adalah pilihan yang wajar. Untungnya, hanya dibutuhkan beberapa langkah sederhana untuk membuat koneksi antara PHP dan MongoDB. Dalam artikel ini, kami memandu Anda melalui proses lengkap pembuatan koneksi PHP dan MongoDB, dan kami memberikan contoh kode yang mencakup kueri MongoDB biasa. Dengan instruksi dan contoh kode ini untuk memandu Anda, Anda akan dapat menulis kode PHP yang dapat mengkueri database MongoDB Anda sendiri

Bagaimana cara menghubungkan MongoDB dengan PHP di Windows?

1 Jawaban .
Unduh driver mongo untuk Windows dari pecl. php. bersih. .
Buka zip versi driver mongo yang diunduh dan salin. dll ke XAMPP. .
Daftar mongodb. dll di dalam php. ini Tambahkan baris berikut ke dalam php. file ini. .
Mulai ulang XAMPP dan segarkan phpinfo. .
Instal MongoDB di Windows

Bagaimana cara memasukkan data di MongoDB menggunakan PHP?

php membutuhkan 'vendor/autoload. php'; . // localhost. 27017"]; echo "berhasil"; $db = $con->selectDatabase['DB']; echo "Dipilih"; $col = $db->selectCollection['myCol']; $dokumen = array[ "nama"

Bisakah saya menggunakan laravel dengan MongoDB?

Dapatkah Saya Menggunakan MongoDB Dengan Laravel? . Yes! Faktanya, MongoDB adalah pilihan tepat untuk proyek Laravel. Saat kita memulai pengembangan Laravel menggunakan MongoDB, kita akan membahas contoh cara membuat aplikasi blog.

Bagaimana cara menjalankan PHP dengan MongoDB?

Cara Menghubungkan MongoDB dengan PHP .
Buat Koneksi dan Pilih Database. .
Buat Koleksi. .
Sisipkan Dokumen. .
Temukan Semua Dokumen. .
Perbarui Dokumen. .
Hapus Dokumen

Bài mới nhất

Chủ Đề