asimtariq/php-gae-util

PHP在Google App Engine中常见任务的工具集。

v0.9.0 2019-04-08 14:25 UTC

This package is auto-updated.

Last update: 2024-09-09 02:06:09 UTC


README

Google App Engine for PHP中常见任务和模式的工具集。目标是使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

贡献