asimtariq / php-gae-util
PHP在Google App Engine中常见任务的工具集。
v0.9.0
2019-04-08 14:25 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-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-1和PSR-2