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.
Instalar la biblioteca PHP con Composer
La última cosa que se debe instalar para comenzar la aplicación
en sí es la biblioteca PHP.
La biblioteca debe ser instalada con
» Composer, un gestor de
paquetes para PHP. Las instrucciones para instalar Composer en diferentes
plataformas pueden encontrarse en su sitio web.
Instalar la biblioteca ejecutando:
$ composer require mongodb/mongodb
Esto producirá una salida similar a:
./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 creará varios ficheros: composer.json
,
composer.lock
, y un directorio vendor
que
contendrá la biblioteca y todas las otras dependencias que su proyecto podría necesitar.
Utilizar la biblioteca PHP
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:
<?php
// Esta ruta debe apuntar al autocargador de Composer
require 'vendor/autoload.php';
Con esto hecho, ahora puede utilizar cualquier
funcionalidad como se describe en la
» documentación de la biblioteca.
Si ha utilizado controladores MongoDB en otros lenguajes, la API de la
biblioteca debería resultarle familiar. Contiene una clase
» Client
para conectarse a MongoDB, una clase
» Database
para las operaciones a nivel de la base de datos (por ejemplo, los comandos, la gestión de las colecciones),
y una clase
» Collection
para las operaciones a nivel de la colección (por ejemplo, los métodos
» CRUD, la gestión de los índices).
Como ejemplo, aquí se muestra cómo insertar un documento en la colección
beers de la base de datos demo:
<?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()}'";
?>
Dado que el documento insertado no contenía un campo _id
, la extensión
generará un MongoDB\BSON\ObjectId para que el servidor
lo utilice como _id
. Este valor también está disponible para
el llamador a través del objeto de resultado devuelto por el método insertOne
.
Después de la inserción, se pueden consultar los datos que acaba de insertar. Para ello, se utiliza el método find
, que devuelve un cursor
iterable:
<?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";
}
?>
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 ArrayObject para facilidad de uso
e implementan las interfaces MongoDB\BSON\Serializable
y MongoDB\BSON\Unserializable 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 mongo
donde los arrays podrían convertirse en documentos, y viceversa. Ver la
especificación Persistir datos para más información sobre
cómo se convierten los valores entre PHP y BSON.