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 votre projet pourrait nécessiter.
Utiliser la bibliothèque PHP
En plus de gérer vos dépendances, Composer vous fournira également un
autochargement (pour les classes de ces dépendances). Assurez-vous
qu'il est inclus au début de votre script ou dans le code d'amorçage de
votre application:
<?php
// Ce chemin doit pointer vers l'autochargeur de Composer
require 'vendor/autoload.php';
Avec cela fait, vous pouvez maintenant utiliser n'importe quelle
fonctionnalité comme décrit dans la
» documentation de la bibliothèque.
Si vous avez utilisé des pilotes MongoDB dans d'autres langages, l'API de la
bibliothèque devrait vous 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 vous insérez 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()}'";
?>
Depuis 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, vous pouvez interroger les données que vous venez d'insérer.
Pour cela, vous utilisez 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.