asimtariq/php-gae-utility

为PHP在Google App Engine中执行常见任务而设计的工具集。

dev-master 2018-12-10 14:49 UTC

This package is auto-updated.

Last update: 2024-09-11 03:43:54 UTC


README

为PHP在Google App Engine上执行常见任务和模式而设计的工具集。目标是使Google App Engine上微服务的发展快速且流畅。以更少的代码处理常见的GAE场景。

模块

  • Auth: 处理与用户认证相关的一些问题。
  • Cached: 只是一个简单的memcache包装器,以使代码更好。
  • Conf:hassankhan/config周围的一个包装器,它提供了一个轻量级的库来执行此类操作。此包装器适用于GAE。
  • Fetch: 确保服务间通信的简单模块。
  • JWT: 用于处理JWT-tokens的所有工作的模块。包装了firebase/php-jwt
  • Secrets: 处理保持秘密的秘密的模块。使用Google KMS来保护密码和令牌。
  • Workflow: 处理GAE上计划任务运行的模块。其主要贡献是存储正在运行的作业状态。将状态保存到DataStore。

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

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

$ gcloud auth application-default login

您需要重新启动devserver才能使其正常工作,因为凭据在启动时设置。

测试和开发

测试

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

测试中的Cloud Datastore设置

$ gcloud components install cloud-datastore-emulator
$ gcloud beta emulators datastore start

对于本地开发包

我为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