mijohansen / php-gae-util
PHP Google App Engine 常用任务的工具集。
0.8.15
2019-01-21 23:52 UTC
Requires
- php: >=5.5
- ext-json: *
- ext-openssl: *
- doctrine/instantiator: 1.0.5
- fig/link-util: ^1.0
- google/apiclient: v2.*
- google/appengine-php-sdk: v1.*
- google/cloud-storage: v1.*
- hassankhan/config: v1.*
- monolog/monolog: v1.*
- tomwalder/php-gds: v4.*
Requires (Dev)
- phpunit/phpunit: ^4.8
- symfony/process: v3.*
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-1 和 PSR-2