mijohansen/php-gae-util

PHP Google App Engine 常用任务的工具集。

0.8.15 2019-01-21 23:52 UTC

This package is auto-updated.

Last update: 2024-09-22 12:06:48 UTC


README

PHP Google App Engine 常用任务和模式的工具集。目标是使 Google App Engine 上的微服务开发快速且顺利。通过更少的代码处理常见的 GAE 场景。

模块

  • Auth: 处理与用户认证相关的一些问题。
  • Cached: 简单的 memcache 包装器,便于测试。
  • Conf: 基于 hassankhan/config 的包装器,提供处理配置的轻量级库。
  • Fetch: 确保服务间通信的简单模块。
  • JWT: 处理 JWT 令牌的模块。包装了 firebase/php-jwt
  • Secrets: 处理保持秘密秘密的模块。使用 Google KMS 来保护密码和令牌。
  • Workflow: 处理在 GAE 上运行计划任务的模块。其主要贡献是存储正在运行的作业的状态。将状态保存到 DataStore。

登录以在开发中提供服务帐户凭据

对于本地开发,如果您想使用 Google Cloud 平台上的资源,则重要地是获取 应用程序默认凭据。您可以通过运行此命令来登录

$ gcloud auth application-default login

您需要重新启动 devserver 才能使其生效,因为凭据在启动时设置。

测试和开发

测试

测试覆盖率是创建可重用、可靠的代码的重要组成部分。测试的目标是使用 phpunit,因为这是最常用的 PHP 测试框架。由于许多方法依赖于 Cloud Datastore,因此安装理解并能够针对模拟器进行测试非常重要。模拟器与 GAE devserver 内部运行的内置模拟器不同。

为测试设置的云数据存储

$ gcloud components install cloud-datastore-emulator
$ gcloud beta emulators datastore start --no-store-on-disk

或者使用 docker

$ docker run -d -p 8282:8282 --name datastore egymgmbh/datastore-emulator:latest

用于本地开发软件包

我为 Packagist 开发软件包的策略如下。

  • 创建一个本地文件夹,其中包含您符号链接的软件包

~/composer/config.json 中添加,这也适用于使用项目的 composer.json 文件,但您可能在其他开发人员的计算机和管道中遇到问题。

{
  "repositories": [
    {
      "type": "path",
      "url": "~/path/to/liberary/root",
      "options": {
        "symlink": true
      }
    }
  ]
}

现在将创建一个链接。为了使开发开始更加顺利,有两个技巧:添加您的库,用 "*" 表示,并在本地 composer.json 中为需要您的软件包的库设置最小稳定性

{
  "minimum-stability": "dev",
  "require": {
    "mijohansen/php-gae-util": "*"
  }
}

编码风格

库由几个独立的类组成,实际上只是形成了一套函数,这些函数应该相当简单引入到代码中。从 0.7.0 版本开始,每个静态方法和函数都写成 camelCase。我尝试遵循 PSR-1PSR-2

贡献