指定依赖项

您部署新版本的应用时,Composer 会自动运行。只需将下面这行代码添加到 PHP 脚本的顶部即可要求加载 autoload.php 文件:

require_once __DIR__ . '/vendor/autoload.php';

Composer 会将软件包添加到应用的 vendor/ 目录中,autoload.php 文件也会在此生成。Composer 自动加载器会自动加载 Composer 安装的类,而不会为每个文件添加 require 语句。

默认情况下,生成的 .gcloudignore 文件中会忽略 vendor/ 目录,以减少部署中发送的文件数。

您可以在标准 composer.json 文件中声明 PHP 依赖项。例如:

{
    "require": {
        "google/cloud": "^0.72"
    }
}

您可以在 App Engine 中使用任何与 Linux 兼容的 PHP 软件包。在启动应用之前,运行时会在应用的源代码目录中查找 composer.json 文件,并使用 composer 安装所有依赖项。

当 Composer 可以使用缓存的结果时,composer.json 文件中定义的脚本不会运行。

默认情况下,App Engine 会缓存已提取的依赖项,以缩短构建时间。要在安装依赖项时忽略缓存,请使用以下命令:

gcloud app deploy --no-cache

在本地安装和运行

使用 Composer 在本地安装依赖项:

composer install
如需将依赖项固定到其当前版本,请将 composer.lock 文件提交到您的应用。

您可以使用您选择的网络服务器测试您的应用。要快速运行应用,您可以使用 PHP 的内置 Web 服务器

安装网络框架

默认情况下,App Engine 通过 public/index.phpindex.php 文件处理所有请求。框架不是必需的,但建议使用框架。您可以在 App Engine 中使用任何Web 框架,包括:

安装 Cloud 客户端库

PHP 版 Google Cloud 客户端库是一个用于访问 Google Cloud 服务的客户端库,可减少您必须编写的样板代码量。该库提供易于理解的高级 API 抽象。它接受 PHP 的习语,与标准库良好适配,并且与您的代码库更紧密地集成。所有这些特点意味着您可以有更多的时间创建对您来说真正重要的代码。

  1. 在本地安装库:

    composer require google/cloud
    
  2. 借助 Google Cloud CLI,您可以在本地处理身份验证。如果您希望本地应用临时使用您自己的用户凭据进行 API 访问,请运行以下命令:

    gcloud auth application-default login
    

    如需详细了解如何配置适用于 PHP 的 Cloud 客户端库以自动处理身份验证,请参阅使用客户端库向 Cloud 服务进行身份验证

使用私有代码库

要在私有代码库中使用库,您必须完成以下任务:

  • 配置代码库。
  • composer 提供访问私有代码库的密钥。

以下示例说明了如何访问 GitHub 中的私有代码库。

  1. 使用 vcs 类型在 composer.json 中配置代码库:

    "repositories": [
        {
            "type": "vcs",
            "url": "https://github.com/username/private_package"
        }
    ]
    
  2. 在项目根目录中创建名为 auth.json 的文件:

    {
        "github-oauth": {
            "github.com": "<your-github-auth-token>"
        }
    }
    

您可以从 GitHub 的管理界面获取 GitHub 身份验证令牌。

以下示例说明了如何访问 Bitbucket 中的私有代码库。

  1. 使用 vcs 类型在 composer.json 中配置代码库:

    "repositories": [
        {
            "type": "vcs",
            "url":  "https://bitbucket.org/username/private_git"
        }
    ]
    
  2. 在项目根目录中创建名为 auth.json 的文件:

    {
        "bitbucket-oauth": {
            "bitbucket.org": {
                "consumer-key": "<your-oauth-consumer-key>",
                "consumer-secret": "<your-oauth-consumer-secret>"
            }
        }
    }