Files
doc-fr/reference/mongodb/tutorial/library.xml
2024-08-18 19:00:18 +01:00

178 lines
6.2 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: e9214a2619efc5906fab59cd42fb7404c4dc49a5 Maintainer: Fan2Shrek Status: ready -->
<!-- Reviewed: yes -->
<chapter xml:id="mongodb.tutorial.library" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Utiliser la bibliothèque PHP pour MongoDB (PHPLIB)</title>
<para>
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.
</para>
<section>
<title>Installer la bibliothèque PHP avec Composer</title>
<para>
La dernière chose que nous devons installer pour commencer l'application
elle-même est la bibliothèque PHP.
</para>
<para>
La bibliothèque doit être installée avec
<link xlink:href="&url.mongodb.composer;">Composer</link>, un gestionnaire de
paquets pour PHP. Les instructions pour installer Composer sur différentes
plateformes peuvent être trouvées sur son site web.
</para>
<para>
Installer la bibliothèque en exécutant:
<programlisting role="shell">
<![CDATA[
$ composer require mongodb/mongodb
]]>
</programlisting>
</para>
<para>
Cela produira une sortie similaire à:
<programlisting role="text">
<![CDATA[
./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
]]>
</programlisting>
</para>
<para>
Composer va créer plusieurs fichiers: <code>composer.json</code>,
<code>composer.lock</code>, et un répertoire <code>vendor</code> qui
contiendra la bibliothèque et toutes les autres dépendances que votre projet pourrait nécessiter.
</para>
</section>
<section>
<title>Utiliser la bibliothèque PHP</title>
<para>
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:
<programlisting role="php">
<![CDATA[
<?php
// Ce chemin doit pointer vers l'autochargeur de Composer
require 'vendor/autoload.php';
]]>
</programlisting>
</para>
<para>
Avec cela fait, vous pouvez maintenant utiliser n'importe quelle
fonctionnalité comme décrit dans la
<link xlink:href="&url.mongodb.library.docs;">documentation de la bibliothèque</link>.
</para>
<para>
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
<link xlink:href="&url.mongodb.library.apidocs;/class/MongoDBClient/">Client</link>
pour se connecter à MongoDB, une classe
<link xlink:href="&url.mongodb.library.apidocs;/class/MongoDBDatabase/">Database</link>
pour les opérations au niveau de la base de données (par exemple, les commandes, la gestion des collections),
et une classe
<link xlink:href="&url.mongodb.library.apidocs;/class/MongoDBCollection">Collection</link>
pour les opérations au niveau de la collection (par exemple, les méthodes
<link xlink:href="&url.mongodb.wiki.crud;">CRUD</link>, la gestion des index).
</para>
<para>
En tant qu'exemple, voici comment vous insérez un document dans la collection
<emphasis>beers</emphasis> de la base de données <emphasis>demo</emphasis>:
<programlisting role="php">
<![CDATA[
<?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()}'";
?>
]]>
</programlisting>
</para>
<para>
Depuis le document inséré ne contenait pas de champ <code>_id</code>, l'extension
va générer un <classname>MongoDB\BSON\ObjectId</classname> pour que le serveur
l'utilise comme <code>_id</code>. Cette valeur est également disponible pour
l'appelant via l'objet de résultat retourné par la méthode <code>insertOne</code>.
</para>
<para>
Après l'insertion, vous pouvez interroger les données que vous venez d'insérer.
Pour cela, vous utilisez la méthode <code>find</code>, qui retourne un curseur
itérable:
<programlisting role="php">
<![CDATA[
<?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";
}
?>
]]>
</programlisting>
</para>
<para>
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 <classname>ArrayObject</classname> pour la facilité d'utilisation
et implémentent les interfaces <interfacename>MongoDB\BSON\Serializable</interfacename>
et <interfacename>MongoDB\BSON\Unserializable</interfacename> 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 <code>mongo</code>
où les tableaux pourraient se transformer en documents, et vice versa. Voir la
spécification <xref linkend="mongodb.persistence"/> pour plus d'informations sur
la façon dont les valeurs sont converties entre PHP et BSON.
</para>
</section>
</chapter>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->