asimtariq / php-gae-utility
为PHP在Google App Engine中执行常见任务而设计的工具集。
dev-master
2018-12-10 14:49 UTC
Requires
- php: >=5.5
- google/apiclient: v2.*
- google/appengine-php-sdk: v1.*
- google/cloud-storage: v1.*
- hassankhan/config: v1.*
- monolog/monolog: v1.*
- tomwalder/php-gds: v4.*
Requires (Dev)
- php: >=5.5
- phpunit/phpunit: ^7
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-1和PSR-2