Après la configuration initiale de l'extension, nous allons continuer à expliquer comment démarrer
avec la bibliothèque utilisateur correspondante pour écrire notre premier projet.
Installer la bibliothèque PHP avec Composer
La dernière chose que nous devons installer pour commencer l'application
elle-même est la bibliothèque PHP.
La bibliothèque doit être installée avec
» Composer, un gestionnaire de
paquets pour PHP. Les instructions pour installer Composer sur différentes
plateformes peuvent être trouvées sur son site web.
Installer la bibliothèque en exécutant:
$ composer require mongodb/mongodb
Cela produira une sortie similaire à:
./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
- Installing mongodb/mongodb (1.0.0)
Downloading: 100%
Writing lock file
Generating autoload files
Composer va créer plusieurs fichiers: composer.json,
composer.lock, et un répertoire vendor qui
contiendra la bibliothèque et toutes les autres dépendances que le projet pourrait nécessiter.
Utiliser la bibliothèque PHP
En plus de gérer les dépendances, Composer fournira également un
autochargement (pour les classes de ces dépendances). Il faut s'assurer
qu'il est inclus au début du script ou dans le code d'amorçage de
l'application :
<?php
// Ce chemin doit pointer vers l'autochargeur de Composer
require 'vendor/autoload.php';
Avec cela fait, il est maintenant possible d'utiliser n'importe quelle
fonctionnalité comme décrit dans la
» documentation de la bibliothèque.
Si on a utilisé des pilotes MongoDB dans d'autres langages, l'API de la
bibliothèque devrait sembler familière. Elle contient une classe
» Client
pour se connecter à MongoDB, une classe
» Database
pour les opérations au niveau de la base de données (par exemple, les commandes, la gestion des collections),
et une classe
» Collection
pour les opérations au niveau de la collection (par exemple, les méthodes
» CRUD, la gestion des index).
En tant qu'exemple, voici comment on insère un document dans la collection
beers de la base de données demo:
<?php
require 'vendor/autoload.php'; // inclure l'autochargeur de Composer
$client = new MongoDB\Client("mongodb://localhost:27017");
$collection = $client->demo->beers;
$result = $collection->insertOne( [ 'name' => 'Hinterland', 'brewery' => 'BrewDog' ] );
echo "Inserted with Object ID '{$result->getInsertedId()}'";
?>
Comme le document inséré ne contenait pas de champ _id, l'extension
va générer un MongoDB\BSON\ObjectId pour que le serveur
l'utilise comme _id. Cette valeur est également disponible pour
l'appelant via l'objet de résultat retourné par la méthode insertOne.
Après l'insertion, il est possible d'interroger les données qu'on vient d'insérer.
Pour cela, on utilise la méthode find, qui retourne un curseur
itérable:
<?php
require 'vendor/autoload.php'; // inclure l'autochargeur de Composer
$client = new MongoDB\Client("mongodb://localhost:27017");
$collection = $client->demo->beers;
$result = $collection->find( [ 'name' => 'Hinterland', 'brewery' => 'BrewDog' ] );
foreach ($result as $entry) {
echo $entry['_id'], ': ', $entry['name'], "\n";
}
?>
Tandis que les exemples ne le montrent pas, les documents BSON et les tableaux
sont désérialisés en tant que classes spéciales dans la bibliothèque par défaut.
Ces classes étendent ArrayObject pour la facilité d'utilisation
et implémentent les interfaces MongoDB\BSON\Serializable
et MongoDB\BSON\Unserializable de l'extension pour
garantir que les valeurs conservent leur type lorsqu'elles sont sérialisées de
nouveau en BSON. Cela évite un inconvénient de l'ancienne extension mongo
où les tableaux pourraient se transformer en documents, et vice versa. Voir la
spécification Persister des données pour plus d'informations sur
la façon dont les valeurs sont converties entre PHP et BSON.