Composer s'exécute automatiquement lorsque vous déployez une nouvelle version de votre application. Ajoutez simplement la ligne suivante en haut de vos scripts PHP pour exiger le fichier autoload.php
:
require_once __DIR__ . '/vendor/autoload.php';
Composer ajoute les packages au répertoire vendor/
de votre application, où le fichier autoload.php
est généré. Le chargeur automatique du fichier Composer charge automatiquement les classes installées par Composer sans instruction require
pour chaque fichier.
Par défaut, le répertoire vendor/
est ignoré dans le fichier .gcloudignore
généré afin de réduire le nombre de fichiers envoyés en déploiement.
Vous pouvez déclarer des dépendances pour PHP dans un fichier composer.json
standard. Exemple :
{
"require": {
"google/cloud": "^0.72"
}
}
Vous pouvez utiliser n'importe quel package PHP compatible avec Linux dans App Engine. L'environnement d'exécution recherche un fichier composer.json
dans le répertoire source de votre application et, avant de démarrer cette dernière, utilise composer
pour installer les dépendances.
Les scripts définis dans votre fichier composer.json
ne s'exécutent pas lorsque Composer peut utiliser un résultat mis en cache.
Par défaut, App Engine met en cache les dépendances obtenues afin de réduire la durée de compilation. Pour installer une version non mise en cache de la dépendance, exécutez la commande suivante :
gcloud app deploy --no-cache
Installer et exécuter en local
Installez vos dépendances en local à l'aide de Composer :
composer install
composer.lock
dans votre application.
Vous pouvez tester votre application à l'aide du serveur Web de votre choix. Vous pouvez exécuter rapidement votre application à l'aide du serveur Web intégré de PHP.
Installer un framework Web
Par défaut, App Engine diffuse toutes les requêtes via le fichier public/index.php
ou index.php
. Un framework n'est pas obligatoire, mais recommandé. Vous pouvez utiliser n'importe quel framework Web avec App Engine, par exemple :
Installer les bibliothèques clientes Cloud
La bibliothèque cliente Google Cloud pour PHP permet d'accéder facilement aux services Google Cloud. De ce fait, la quantité de code récurrent que vous devez développer est réduite. Cette bibliothèque fournit des abstractions d'API de haut niveau, faciles à comprendre. Elle accepte les idiomes de PHP, fonctionne correctement avec la bibliothèque standard et s'intègre mieux à votre codebase. Vous pouvez donc consacrer plus de temps à développer du code qui vous est réellement utile.
Installez la bibliothèque en local :
composer require google/cloud
Vous pouvez gérer l'authentification localement à l'aide de Google Cloud CLI. Si vous souhaitez que votre application locale utilise temporairement vos propres identifiants pour accéder à l'API, exécutez la commande suivante :
gcloud auth application-default login
Pour en savoir plus sur la configuration des bibliothèques clientes Cloud pour PHP afin de gérer l'authentification automatiquement, consultez la page S'authentifier auprès de services cloud à l'aide de bibliothèques clientes.
Utiliser des dépôts privés
Pour utiliser des bibliothèques dans des dépôts privés, procédez comme suit :
- Configurez le dépôt.
- Donnez à
composer
le secret permettant d'accéder au dépôt privé.
L'exemple suivant montre comment accéder à un dépôt privé dans GitHub.
Configurez le dépôt dans
composer.json
en définissant le type survcs
:"repositories": [ { "type": "vcs", "url": "https://github.com/username/private_package" } ]
Créez un fichier nommé
auth.json
dans le répertoire racine de votre projet :{ "github-oauth": { "github.com": "<your-github-auth-token>" } }
Vous pouvez obtenir le jeton d'authentification GitHub à partir de l'interface utilisateur d'administration de GitHub.
Voici un autre exemple illustrant comment accéder à un dépôt privé pour Bitbucket.
Configurez le dépôt dans
composer.json
en définissant le type survcs
:"repositories": [ { "type": "vcs", "url": "https://bitbucket.org/username/private_git" } ]
Créez un fichier nommé
auth.json
dans le répertoire racine de votre projet :{ "bitbucket-oauth": { "bitbucket.org": { "consumer-key": "<your-oauth-consumer-key>", "consumer-secret": "<your-oauth-consumer-secret>" } } }