W rzeczywistości używamy Lumen, Laravel, Mongo i MySQL w jednym wielkim projekcie, więc mogę ci pomóc przez ten projekt. Zakładając, że chcesz używać MongoDB z elokwentnym zamiast z surowym MongoClient. Bibliotekę, której używam, można znaleźć w firmie jenssegers tutaj .
Zainstaluj rozszerzenie MongoDB
Najpierw musisz zainstalować zależności, aby PHP mógł współdziałać z mongo. Szczegóły dotyczące instalacji rozszerzenia mongo można znaleźć w dokumentacji PHP .
Następnie będziesz musiał edytować pliki php.ini dla platform (apache/cli/nginx), aby załadować rozszerzenie. Dodałem następujące przed Ustawieniami modułu
extension=mongo.so
Nie trzeba dodawać, że po zmianie konfiguracji trzeba zrestartować Apache/nginx.
Konfigurowanie światła
W głównym folderze lumen możesz dodać go do swoich wymagań za pomocą następującego polecenia.
composer require jenssegers/mongodb
Stamtąd musisz również załadować MongodbServiceProvider przed Fasady lub Eloquent są inicjowane.
$app->register(Jenssegers\Mongodb\MongodbServiceProvider::class);
$app->withFacades();
$app->withEloquent();
Dla uproszczenia organizacji konfiguracji stworzyłem również folder config oraz plik konfiguracyjny database.php. Ponieważ Lumen nie próbuje automatycznie ładować ani przeszukiwać tego katalogu, musimy powiedzieć mu, aby załadował tę konfigurację. Umieszczam następujący wiersz tuż przed załadowaniem tras aplikacji.
$app->configure('database');
W database.php sterownik mongodb wymaga określonej struktury. Dołączyłem tutaj mysql, ponieważ używam obu, ale jeśli używasz wyłącznie mongo, możesz zmienić domyślny na mongodb i usunąć konfigurację 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
)
),
],
];
Po takiej konfiguracji możesz teraz utworzyć model, od momentu pisania tego, aby utworzyć model dla mongo (sprawdź stronę github), możesz użyć następującego jako podstawy. Możesz zignorować zmienną $connection, jeśli mongo jest twoim domyślnym sterownikiem.
<?php
namespace App;
use Jenssegers\Mongodb\Model as Eloquent;
class Example extends Eloquent
{
protected $connection = 'mongodb';
protected $collection = 'example';
protected $primaryKey = '_id';
}
Proszę bardzo, powinieneś być w stanie normalnie wchodzić w interakcje z mongo, aby uzyskać szczegółowe informacje na temat sterownika, sprawdź stronę github, aby uzyskać dokumentację na ten temat.
Jeśli ta odpowiedź pomogła, czy możesz ją oznaczyć jako odpowiedź?