Kami sebenarnya menggunakan Lumen, Laravel, Mongo, dan MySQL dalam satu proyek raksasa sehingga saya dapat membantu Anda melalui yang satu ini. Dengan asumsi Anda ingin menggunakan MongoDB dengan fasih alih-alih dengan MongoClient mentah. Anda dapat menemukan perpustakaan yang saya gunakan dari jenssegers di sini .
Instal Ekstensi MongoDB
Pertama, Anda harus menginstal dependensi agar PHP dapat berinteraksi dengan mongo. Spesifik untuk menginstal ekstensi mongo dapat ditemukan di dokumentasi PHP .
Setelah itu Anda harus mengedit file php.ini untuk platform (apache/cli/nginx) untuk memuat ekstensi. Saya menambahkan yang berikut ini sebelum Pengaturan Modul
extension=mongo.so
Tak perlu dikatakan lagi Anda perlu me-restart Apache/nginx setelah mengubah konfigurasi.
Mengonfigurasi Lumen
Di folder lumen root Anda, Anda dapat menambahkannya ke kebutuhan Anda dengan perintah berikut.
composer require jenssegers/mongodb
Dari sana Anda juga harus memuat MongodbServiceProvider sebelum Fasad atau Eloquent diinisialisasi.
$app->register(Jenssegers\Mongodb\MongodbServiceProvider::class);
$app->withFacades();
$app->withEloquent();
Untuk mempermudah pengaturan konfigurasi, saya juga membuat folder konfigurasi dan file konfigurasi database.php. Karena Lumen tidak mencoba memuat otomatis atau mencari direktori ini, kami harus memberi tahunya untuk memuat konfigurasi ini. Saya meletakkan baris berikut tepat sebelum memuat rute aplikasi.
$app->configure('database');
Di database.php driver mongodb membutuhkan struktur tertentu. Saya telah menyertakan mysql di sini karena saya menggunakan keduanya, tetapi jika Anda menggunakan mongo secara eksklusif, Anda dapat mengubah default ke mongodb dan menghapus konfigurasi mysql.
return [
'default' => 'mysql',
'connections' => [
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'database' => env('DB_DATABASE', ''),
'username' => env('DB_USERNAME', ''),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
],
'mongodb' => array(
'driver' => 'mongodb',
'host' => env('MONGODB_HOST', 'localhost'),
'port' => env('MONGODB_PORT', 27017),
'username' => env('MONGODB_USERNAME', ''),
'password' => env('MONGODB_PASSWORD', ''),
'database' => env('MONGODB_DATABASE', ''),
'options' => array(
'db' => env('MONGODB_AUTHDATABASE', '') //Sets the auth DB
)
),
],
];
Dengan tidak adanya konfigurasi, Anda sekarang dapat membuat model, pada saat menulis ini untuk membuat model untuk mongo (periksa halaman github), Anda dapat menggunakan yang berikut ini sebagai basis. Anda dapat mengabaikan variabel $connection jika mongo adalah driver default Anda.
<?php
namespace App;
use Jenssegers\Mongodb\Model as Eloquent;
class Example extends Eloquent
{
protected $connection = 'mongodb';
protected $collection = 'example';
protected $primaryKey = '_id';
}
Ini dia, Anda seharusnya dapat berinteraksi dengan mongo secara normal, untuk spesifikasi driver, lihat halaman github untuk dokumentasinya.
Jika jawaban ini membantu, bisakah Anda menandainya sebagai jawaban?