1
0
mirror of https://github.com/php/doc-fr.git synced 2026-03-24 07:02:06 +01:00
Files
Louis-Arnaud a0a454bcb4 Correction de ~150 fautes d'orthographe et de grammaire (#2546)
Élisions manquantes (de/le/que + voyelle), accords genre/nombre, conjugaisons incorrectes (on + 2e personne), typos, accents manquants, contractions (à le → au, de les → des), c.-à-d., etc.
2026-02-25 15:37:03 +01:00

178 lines
6.2 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 3e871fe7eab38f9b0398569c57a1dd0c21e69652 Maintainer: Fan2Shrek Status: ready -->
<!-- Reviewed: yes -->
<section 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 le projet pourrait nécessiter.
</para>
</section>
<section>
<title>Utiliser la bibliothèque PHP</title>
<para>
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 :
<programlisting role="php">
<![CDATA[
<?php
// Ce chemin doit pointer vers l'autochargeur de Composer
require 'vendor/autoload.php';
]]>
</programlisting>
</para>
<para>
Avec cela fait, il est maintenant possible d'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 on a utilisé des pilotes MongoDB dans d'autres langages, l'API de la
bibliothèque devrait 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 on insère 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>
Comme 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, il est possible d'interroger les données qu'on vient d'insérer.
Pour cela, on utilise 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>
</section>
<!-- 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
-->