Composer viene eseguito automaticamente quando esegui il deployment di una nuova versione dell'applicazione. È sufficiente aggiungere la seguente riga nella parte superiore degli script PHP per richiedere il file autoload.php
:
require_once __DIR__ . '/vendor/autoload.php';
Composer aggiunge i pacchetti alla directory vendor/
dell'app, dove viene generato il file autoload.php
. Il caricatore automatico Composer carica automaticamente le classi installate da Composer senza un'istruzione require
per ogni file.
Per impostazione predefinita, la directory vendor/
viene ignorata nel file .gcloudignore
generato per ridurre il numero di file inviati durante il deployment.
Puoi dichiarare le dipendenze per PHP in un file composer.json
standard. Ad esempio:
{
"require": {
"google/cloud": "^0.72"
}
}
In App Engine puoi utilizzare qualsiasi pacchetto PHP compatibile con Linux. Il runtime cerca un file composer.json
nella directory di origine dell'applicazione e utilizza composer
per installare le dipendenze prima di avviare l'applicazione.
Gli script definiti nel file composer.json
non verranno eseguiti quando Composer può utilizzare un risultato memorizzato nella cache.
Per impostazione predefinita, App Engine memorizza nella cache le dipendenze recuperate per ridurre i tempi di build. Per installare una versione della dipendenza non memorizzata nella cache, utilizza il comando:
gcloud app deploy --no-cache
Installazione ed esecuzione in locale
Utilizza composer per installare le dipendenze localmente:
composer install
Per bloccare le dipendenze alla versione corrente, esegui il commit del file composer.lock
nell'applicazione.
Puoi testare la tua applicazione utilizzando il server web che preferisci. Per eseguire rapidamente la tua applicazione, puoi utilizzare il server web integrato di PHP.
Installazione di un framework web
Per impostazione predefinita, App Engine gestisce tutte le richieste tramite il file public/index.php
o index.php
. Il framework non è obbligatorio, ma è consigliato. Puoi utilizzare qualsiasi framework web con App Engine, incluso quanto segue:
Installazione delle librerie client di Cloud
La libreria client di Google Cloud per PHP è una libreria client per l'accesso ai servizi Google Cloud che riduce il codice boilerplate da scrivere. La libreria fornisce astrazioni API di alto livello e facilmente comprensibili. Supporta le espressioni idiomatiche di PHP, funziona bene con la libreria standard e ha un'integrazione più stretta con il codebase. Tutto questo significa che potrai dedicare più tempo alla creazione del codice che conta per te.
Installa la libreria localmente:
composer require google/cloud
Puoi gestire l'autenticazione in locale utilizzando Google Cloud CLI. Se vuoi che l'applicazione locale utilizzi temporaneamente le tue credenziali utente per l'accesso all'API, esegui:
gcloud auth application-default login
Per maggiori dettagli sulla configurazione delle librerie client di Cloud per PHP per la gestione automatica dell'autenticazione, vedi Autenticazione nei servizi Cloud utilizzando le librerie client.
Utilizzo dei repository privati
Per utilizzare le librerie in repository privati, devi completare le seguenti attività:
- Configura il repository.
- Fornisci a
composer
il secret per accedere al repository privato.
L'esempio seguente illustra come accedere a un repository privato in GitHub.
Configura il repository in
composer.json
utilizzandovcs
per il tipo:"repositories": [ { "type": "vcs", "url": "https://github.com/username/private_package" } ]
Crea un file denominato
auth.json
nella directory principale del progetto:{ "github-oauth": { "github.com": "<your-github-auth-token>" } }
Puoi ottenere il token di autenticazione GitHub dall'interfaccia utente amministrativa di GitHub.
Ecco un altro esempio che illustra come accedere a un repository privato per Bitbucket.
Configura il repository in
composer.json
utilizzandovcs
per il tipo:"repositories": [ { "type": "vcs", "url": "https://bitbucket.org/username/private_git" } ]
Crea un file denominato
auth.json
nella directory principale del progetto:{ "bitbucket-oauth": { "bitbucket.org": { "consumer-key": "<your-oauth-consumer-key>", "consumer-secret": "<your-oauth-consumer-secret>" } } }