Usa Cloud Firestore en modo Datastore

Firestore es una base de datos de documentos NoSQL compilada para proporcionar ajuste de escala automático, alto rendimiento y facilidad de desarrollo de aplicaciones. Es la versión más reciente de Datastore y presenta varias mejoras con respecto a Datastore.

Recomendamos usar Firestore en el modo Datastore para las bases de datos que usarán principalmente las aplicaciones de App Engine. Para obtener más información sobre los modos de Firestore, consulta Elige entre el modo nativo y el modo Datastore.

En este documento, se describe cómo usar la biblioteca cliente de Google Cloud para almacenar y recuperar datos en una base de datos del modo Datastore.

Requisitos previos y configuración

Sigue las instrucciones en “Hello, World!” para PHP en App Engine a fin de configurar tu entorno y proyecto, y comprender cómo se estructuran las apps de PHP en App Engine. Anota y guarda el ID del proyecto, ya que lo necesitarás para ejecutar la aplicación de muestra que se describe en este documento.

Clona el repositorio

Descarga (clona) la muestra:

git clone https://github.com/GoogleCloudPlatform/php-docs-samples
cd php-docs-samples/appengine/flexible/datastore

Edita la configuración del proyecto y establece las dependencias

Instala las dependencias con Composer:

composer install

Código de la aplicación

La aplicación de muestra registra, recupera y muestra los IP de las visitantes.

La aplicación primero crea una instancia de un cliente en modo Datastore:

$datastore = new DatastoreClient([
    'projectId' => $projectId
]);

Cada visita es una entidad con campos para la dirección IP del visitante y una marca de tiempo, y se guarda en el modo Datastore con el comando insert:

// Create an entity to insert into datastore.
$key = $datastore->key('visit');
$entity = $datastore->entity($key, [
    'user_ip' => $user_ip,
    'timestamp' => new DateTime(),
]);
$datastore->insert($entity);

Con el comando query se recuperan las diez visitas más recientes, en orden descendente:

// Query recent visits.
$query = $datastore->query()
    ->kind('visit')
    ->order('timestamp', 'DESCENDING')
    ->limit(10);
$results = $datastore->runQuery($query);
$visits = [];
foreach ($results as $entity) {
    $visits[] = sprintf('Time: %s Addr: %s',
        $entity['timestamp']->format('Y-m-d H:i:s'),
        $entity['user_ip']);
}

Usa archivos index.yaml

La app de muestra realiza consultas sencillas. Las consultas en modo Datastore más elaboradas requieren uno o más índices, que debes especificar en un archivo index.yaml que subas junto con tu app. Este archivo puede crearse manualmente o generarse automáticamente mientras se prueba tu app de forma local.

Pruebas locales

Si necesitas desarrollar y probar tu aplicación localmente, puedes usar el emulador del modo Datastore.

Más información

Para obtener información completa sobre el modo Datastore, incluidos los conceptos y las optimizaciones, consulta la documentación de Cloud Firestore en modo Datastore.