Utilizzo di Cloud Firestore in modalità Datastore

Firestore è un database di documenti NoSQL creato per offrire scalabilità automatica, prestazioni elevate e facilità dello sviluppo di applicazioni. Si tratta della versione più recente di Datastore e introduce diversi miglioramenti rispetto a Datastore.

Poiché Firestore in modalità Datastore è ottimizzato per casi d'uso del server e per App Engine, consigliamo di utilizzare Firestore in modalità Datastore per database che verranno utilizzati principalmente dalle app di App Engine. Firestore in modalità nativa è più utile per i casi d'uso delle notifiche su dispositivi mobili e in tempo reale. Per ulteriori informazioni sulle modalità Firestore, consulta la pagina relativa alla scelta tra la modalità nativa e la modalità Datastore.

Questo documento descrive come utilizzare la libreria client di Google Cloud per archiviare e recuperare i dati in un database in modalità Datastore.

Prerequisiti e configurazione

Segui le istruzioni in "Hello, World!" per PHP su App Engine per configurare il tuo ambiente e il tuo progetto e per comprendere come sono strutturate le app PHP in App Engine. Annota e salva l'ID progetto, perché ti servirà per eseguire l'applicazione di esempio descritta in questo documento.

Clonare il repository

Scarica (clona) il campione:

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

Modifica la configurazione del progetto e imposta le dipendenze

Installa le dipendenze utilizzando Composer:

composer install

Codice dell'applicazione

L'applicazione di esempio registra, recupera e visualizza gli indirizzi IP dei visitatori.

Per prima cosa, l'applicazione crea un'istanza di un client in modalità Datastore:

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

Ogni visita è un'entità con campi per l'indirizzo IP del visitatore e un timestamp, che viene salvata in modalità Datastore utilizzando il 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);

Le dieci visite più recenti vengono recuperate in ordine decrescente utilizzando il comando query:

// 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']);
}

index.yaml file in uso

L'app di esempio esegue semplici query. Le query più elaborate in modalità Datastore richiedono uno o più indici, che devono essere specificati in un file index.yaml che si carica insieme all'app. Questo file può essere creato manualmente o generato automaticamente durante il test dell'app in locale.

Test locale

Se devi sviluppare e testare la tua applicazione in locale, puoi utilizzare l'emulatore di modalità Datastore.

Per ulteriori informazioni

Per informazioni complete sulla modalità Datastore, tra cui ottimizzazioni e concetti, consulta la documentazione di Cloud Firestore in modalità Datastore.