Avec l'avènement de PHP7, l'ancien pilote mongodb n'est plus pris en charge.
Le nouveau pilote disponible est un peu bas de gamme par rapport au précédent, il peut donc être un peu compliqué à utiliser.
C'est pour cela que cette bibliothèque a été conçue.
!!! POUR DES DIRECTIVES DÉTAILLÉES, CONSULTEZ LE WIKI SUR : https://github.com/ThomasSquall/PHP7MongoDriver/wiki
Utiliser composer est assez simple, il suffit d'exécuter la commande suivante :
$ composer require thomas-squall/php7-mongo-driver
Avant d'utiliser cette bibliothèque, vous devez vous assurer d'avoir installé PHP7.0 ou majeur et le pilote MongoDb de pecl.
Pour ceux qui utilisent une distribution Linux (assurez-vous que pecl est installé), exécutez simplement :
$ sudo pecl install mongodb
Après cela, vous devez mettre la chaîne suivante
extension=mongodb.so
Dans votre php.ini
Dans un premier temps, vous devez définir une chaîne de connexion.
Le format des chaînes de connexion est :
mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]
Pour plus d'informations, consultez le lien : https://docs.mongodb.com/manual/reference/connection-string/
Une fois défini, vous devez instancier un nouvel adaptateur :
use MongoDriver Adapter ;
// Enstablish a connection.
$ adapter = new Adapter ();
$ adapter -> connect ( CONNECTION_STRING );
À ce stade, vous souhaitez sélectionner une base de données dans laquelle effectuer votre requête :
$ adapter -> selectDB ( ' myDatabase ' );
REMARQUE : vous pouvez sélectionner une base de données directement sur le constructeur en passant le nom de la base de données comme 2ème paramètre.
Une fois la base de données sélectionnée, nous pouvons simplement rechercher la collection souhaitée :
$ items = $ adapter -> find ( ' myCollection ' );
Vous pouvez également filtrer votre requête :
use MongDriver Filter ;
$ filters =
[
new Filter ( ' myField1 ' , ' myValue1 ' , Filter:: IS_EQUALS ),
new Filter ( ' myField2 ' , [ ' myValue2 ' , ' myValue3 ' ], Filters:: IS_IN_ARRAY )
];
$ items = $ adapter -> find ( ' myCollection ' , $ filters );
Si vous souhaitez insérer un élément il vous suffit de passer un tableau ou un objet à la fonction insert spécifiant la collection :
$ item = new Person ();
$ item -> name = ' Thomas ' ;
$ item -> surname = ' Cocchiara ' );
// or: $item = ['name' => 'Thomas', 'surname' => 'Cocchiara'];
$ adapter -> insert ( ' people ' , $ item );
J'espère que vous trouverez cette bibliothèque utile.
N'hésitez pas à le partager et à me faire part de vos commentaires :)
Thomas