1
0
mirror of https://github.com/php/doc-es.git synced 2026-03-24 23:42:11 +01:00
Files
2025-05-01 16:22:55 +02:00

173 lines
6.0 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 3e871fe7eab38f9b0398569c57a1dd0c21e69652 Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: no -->
<section xml:id="mongodb.tutorial.library" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Utilizar la biblioteca PHP para MongoDB (PHPLIB)</title>
<para>
Después de la configuración inicial de la extensión, se continuará explicando cómo comenzar
con la biblioteca de usuario correspondiente para escribir nuestro primer proyecto.
</para>
<section>
<title>Instalar la biblioteca PHP con Composer</title>
<para>
La última cosa que se debe instalar para comenzar la aplicación
en sí es la biblioteca PHP.
</para>
<para>
La biblioteca debe ser instalada con
<link xlink:href="&url.mongodb.composer;">Composer</link>, un gestor de
paquetes para PHP. Las instrucciones para instalar Composer en diferentes
plataformas pueden encontrarse en su sitio web.
</para>
<para>
Instalar la biblioteca ejecutando:
<programlisting role="shell">
<![CDATA[
$ composer require mongodb/mongodb
]]>
</programlisting>
</para>
<para>
Esto producirá una salida similar a:
<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 creará varios ficheros: <code>composer.json</code>,
<code>composer.lock</code>, y un directorio <code>vendor</code> que
contendrá la biblioteca y todas las otras dependencias que su proyecto podría necesitar.
</para>
</section>
<section>
<title>Utilizar la biblioteca PHP</title>
<para>
Además de gestionar sus dependencias, Composer también le proporcionará un
autocargador (para las clases de estas dependencias). Asegúrese de que esté incluido al inicio de su script o en el código de arranque de
su aplicación:
<programlisting role="php">
<![CDATA[
<?php
// Esta ruta debe apuntar al autocargador de Composer
require 'vendor/autoload.php';
]]>
</programlisting>
</para>
<para>
Con esto hecho, ahora puede utilizar cualquier
funcionalidad como se describe en la
<link xlink:href="&url.mongodb.library.docs;">documentación de la biblioteca</link>.
</para>
<para>
Si ha utilizado controladores MongoDB en otros lenguajes, la API de la
biblioteca debería resultarle familiar. Contiene una clase
<link xlink:href="&url.mongodb.library.apidocs;/class/MongoDBClient/">Client</link>
para conectarse a MongoDB, una clase
<link xlink:href="&url.mongodb.library.apidocs;/class/MongoDBDatabase/">Database</link>
para las operaciones a nivel de la base de datos (por ejemplo, los comandos, la gestión de las colecciones),
y una clase
<link xlink:href="&url.mongodb.library.apidocs;/class/MongoDBCollection">Collection</link>
para las operaciones a nivel de la colección (por ejemplo, los métodos
<link xlink:href="&url.mongodb.wiki.crud;">CRUD</link>, la gestión de los índices).
</para>
<para>
Como ejemplo, aquí se muestra cómo insertar un documento en la colección
<emphasis>beers</emphasis> de la base de datos <emphasis>demo</emphasis>:
<programlisting role="php">
<![CDATA[
<?php
require 'vendor/autoload.php'; // incluir el autocargador 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>
Dado que el documento insertado no contenía un campo <code>_id</code>, la extensión
generará un <classname>MongoDB\BSON\ObjectId</classname> para que el servidor
lo utilice como <code>_id</code>. Este valor también está disponible para
el llamador a través del objeto de resultado devuelto por el método <code>insertOne</code>.
</para>
<para>
Después de la inserción, se pueden consultar los datos que acaba de insertar. Para ello, se utiliza el método <code>find</code>, que devuelve un cursor
iterable:
<programlisting role="php">
<![CDATA[
<?php
require 'vendor/autoload.php'; // incluir el autocargador 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>
Aunque los ejemplos no lo muestran, los documentos BSON y los arrays
son deserializados como clases especiales en la biblioteca por defecto. Estas clases extienden <classname>ArrayObject</classname> para facilidad de uso
e implementan las interfaces <interfacename>MongoDB\BSON\Serializable</interfacename>
y <interfacename>MongoDB\BSON\Unserializable</interfacename> de la extensión para garantizar que los valores conserven su tipo cuando se serializan nuevamente en BSON. Esto evita un inconveniente de la antigua extensión <code>mongo</code>
donde los arrays podrían convertirse en documentos, y viceversa. Ver la
especificación <xref linkend="mongodb.persistence"/> para más información sobre
cómo se convierten los valores entre PHP y 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
-->