Después de la configuración inicial del controlador, continuaremos explicando cómo empezar
con el controlador de MongoDB y la correspondiente biblioteca de usuario para escribir
nuestro primer proyecto.
Instalación de la Biblioteca de PHP con Composer
Lo último que necesitamos instalar para empezar con la apliación
en sí, es la biblioteca de PHP.
La bibilioteca necesita ser instalada con
» Composer, un gestor de paquetes
para PHP. Las instrucciones para instalar Composer en varias plataformas se pueden
encontrar en su sitio web.
Instale la biblioteca ejecutando:
$ composer require "mongodb/mongodb=^1.0.0"
Muestra algo parecido a esto:
./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 cualquier otra dependencia que requiera el proyecto.
Utilizar la Biblioteca de PHP
Además de gestionar las dependencias, Composer también proporciona
un autocargador (para las clases de las dependencias). Asegúrese que se
incluye al inicio del script o en el código de arranque de la
aplicación:
<?php
// Esta ruta debe apuntar al autocargador de Composer
require 'vendor/autoload.php';
Con esto hecho, ahora se puede emplear cualquier funcionalidad de la descrita en la
» documentación de la biblioteca
y en su » API.
Si ha empleado anteriormente el controlador antiguo (esto es, la extensión
mongo
), la API de la biblioteca debería serle familiar. Contiene una clase
» Client
para conectar a MongoDB, una clase
» Database
para operaciones a nivel de la base de datos (p.ej. comandos , gestión de colecciones)
y una clase
» Collection
para operaciones a nivel de colección (p.ej.
métodos » CRUD, gestión de índices).
Se han renombrado varios métodos de Collection para mayor claridad y para estar en
concordancia con una nueva » specification
independiente del lenguaje.
Como ejemplo, así es como se inserta un documento en la
colección beers de la base de datos
demo:
<?php
require 'vendor/autoload.php'; // incluir lo bueno de Composer
$cliente = new MongoDB\Client("mongodb://localhost:27017");
$colección = $cliente->demo->beers;
$resultado = $colección->insertOne( [ 'name' => 'Hinterland', 'brewery' => 'BrewDog' ] );
echo "Inserted with Object ID '{$resultado->getInsertedId()}'";
?>
En lugar de inyectar el campo _id
generado en el documento de
entrada (tal como se hacía en el antiguo controlador), ahora se pone a disposición
mediante el objeto de resultados devuelto por el método insertOne
.
Por supuesto, después de la inserción también se pueden consultar los datos que se
acaban de insertar. Para ello se utiliza el método find
, el cual devuelve un
cursor iterable:
<?php
require 'vendor/autoload.php'; // include Composer goodies
$cliente = new MongoDB\DriverMongoDB\Client("mongodb://localhost:27017");\Client("mongodb://localhost:27017");
$colección = $cliente->demo->beers;
$resultado = $colección->find( [ 'name' => 'Hinterland', 'brewery' => 'BrewDog' ] );
foreach ($resultado as $entry) {
echo $entry['_id'], ': ', $entry['name'], "\n";
}
?>
Anuque pueda no ser evidente en los ejemplos, los documentos BSON y los arrays son
deserializados como clases de tipo en la biblioteca de forma predeterminada. Estas clases aseguran
que los valores preservan sus tipos cuando son serializados de nuevo a BSON, lo cual
evita una advertencia del antiguo controlador cuando un array podía convertise a un documento,
y viceversa. Además, las clases extienden
ArrayObject para mejorar la usabilidad. Se puede encontrar más
información sobre cómo el controlador y la biblioteca manejan la serialización y
deserialización entre variablies de PHP y BSON leyendo la
especificicación de Persistencia de datos.