Na verdade, estamos usando Lumen, Laravel, Mongo e MySQL em um projeto gigante para que eu possa ajudá-lo neste. Supondo que você queira usar o MongoDB com eloquente em vez de com o MongoClient bruto. Você pode encontrar a biblioteca que estou usando em jensegers aqui .
Instalar a extensão MongoDB
Primeiramente você precisará instalar as dependências do PHP para interagir com o mongo. Os detalhes para instalar a extensão mongo podem ser encontrados na documentação do PHP .
Depois disso você terá que editar os arquivos php.ini das plataformas (apache/cli/nginx) para carregar a extensão. Eu adicionei o seguinte antes de Configurações do módulo
extension=mongo.so
Escusado será dizer que você precisa reiniciar o apache/nginx depois de alterar a configuração.
Configurando o lúmen
Na sua pasta de lúmen raiz, você pode adicioná-lo aos seus requisitos com o seguinte comando.
composer require jenssegers/mongodb
A partir daí, você também precisará carregar o MongodbServiceProvider antes Facades ou Eloquent é inicializado.
$app->register(Jenssegers\Mongodb\MongodbServiceProvider::class);
$app->withFacades();
$app->withEloquent();
Para simplificar a organização da configuração, também criei uma pasta de configuração e um arquivo de configuração database.php. Como o Lumen não tenta carregar automaticamente ou pesquisar este diretório, temos que dizer a ele para carregar essa configuração. Coloquei a seguinte linha logo antes de carregar as rotas do aplicativo.
$app->configure('database');
Em database.php o driver mongodb requer uma estrutura específica. Incluí o mysql aqui, pois uso os dois, mas se você estiver usando o mongo exclusivamente, poderá alterar o padrão para mongodb e remover a configuração do 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
)
),
],
];
Com a configuração fora do caminho, agora você pode criar um modelo, ao escrever isso para criar um modelo para o mongo (verifique a página do github), você pode usar o seguinte como base. Você pode ignorar a variável $connection se o mongo for seu driver padrão.
<?php
namespace App;
use Jenssegers\Mongodb\Model as Eloquent;
class Example extends Eloquent
{
protected $connection = 'mongodb';
protected $collection = 'example';
protected $primaryKey = '_id';
}
Pronto, você deve ser capaz de interagir com o mongo normalmente, para as especificações do driver, confira a página do github para documentação sobre ele.
Se essa resposta te ajudou, você poderia marcar como resposta?