cloudfoundry-community / php-cf-service-broker
为 Cloud Foundry 定制的 Cloud Foundry 服务代理
Requires
- php: >=5.5
- ext-pdo: *
- ext-pdo_mysql: *
- ext-pdo_sqlite: *
- cloudfoundry-community/cf-helper-php: 1.5.*
- doctrine/orm: 2.4.*
- filp/whoops: ~1.1
- jms/serializer: 0.16.0
- league/plates: ~3.1
- league/route: ~1.1
- monolog/monolog: ~1.13
- ramsey/uuid: ^2.8
- sphring/sphring: 0.12.*
- sphring/sphring-cache: dev-master
- vierbergenlars/php-semver: ^3.0
Requires (Dev)
This package is auto-updated.
Last update: 2024-09-12 20:18:42 UTC
README
Php 项目,用于创建与 Open Service Broker API 兼容的服务代理。
此项目可以用于快速实现与 Kubernetes 或 Cloud Foundry 兼容的新服务代理。
兼容性
- Open Service Broker API: 2.14
- 不支持异步操作
- Kubernetes
- v1.10
- Kubernetes 服务目录:v0.1.35
- Cloud Foundry
- cf-release: 192 或更高版本
- Pivotal CF: 预期 1.4
快速开始
-
克隆此仓库或使用
composer create-project cloudfoundry-community/php-cf-service-broker -
在 /config/services.json 中添加您的服务(先删除示例)
-
通过在命令行中执行以下命令创建用户:
php bin/addUser.php [用户名] [密码] -
(可选)在 /config/config.yml 中更改配置
-
在 /src/Sphring/MicroWebFramework/ServiceBroker/DefaultServiceBroker.php 中创建逻辑(建议查看 文档,无需遵循其余 URL,项目已处理)
-
注册您的新服务代理
-
在 Kubernetes 中
-
在 Cloud Foundry 中
按照 http://docs.cloudfoundry.org/services/managing-service-brokers.html#register-broker 执行
-
-
服务代理已准备好,并遵循 文档 中提供的其余 URL
配置
通用
请参阅 /config/config.yml。
数据库
默认情况下,此项目使用 sqlite 数据库,通过修改此文件更改到其他数据库:/config/doctrine-driver.yml
调整日志记录
请参阅 app/app.php。
默认情况下,此应用程序仅将警告记录到 stdout。
要启用文件记录,您可以取消注释 $logger->pushHandler 行。
要调整日志级别,您可以更改 \Monolog\Logger::* 的值。例如,要将日志级别设置为 debug,可以将值设置为 \Monolog\Logger::DEBUG。有关详细信息,请参阅 Monolog logger 源代码。
添加更多服务代理
您可以通过以下步骤添加无限多的服务代理
- 在 /config/services.json 中添加另一个服务
- 创建一个新的服务代理类,并扩展 Sphring\MicroWebFramework\ServiceBroker\AbstractServiceBroker
- 通过在 /sphring/service-broker.yml 中添加条目来注册你的新代理,例如
service.broker.[your broker name]: class: Sphring\MicroWebFramework\ServiceBroker\[your broker class name] extend: service.broker.abstract
- 在此文件中添加一个新的条目到
service.broker.list,例如service.broker.list: class: \ArrayObject constructor: 1: ref: default: service.broker.default [service name from services.json]: service.broker.[your broker name]
- 在命令行中执行
touch sphring/main.yml或在 /config/config.yml 中将缓存设置为false - 你的新服务代理已可用
作为 Cloud Foundry 应用程序运行
- 创建一个数据库服务,其名称符合以下正则表达式:
/.*(postgres|pgsql|db|database|my|maria|oracle|oci).*/i(注意:在composer.json中添加除 pdo_mysql 之外的其他 pdo 驱动程序) - 推送应用程序(运行
cf push) - 将数据库服务绑定到你的应用程序
- 重新部署你的应用程序
- 服务代理应用程序准备就绪,尝试访问
http://your_url/v2/catalog,你应该能看到你的目录
开发环境
PHP 嵌入式 web 服务器的路由器
cd app
php -S 0.0.0.0:8888 ../config/routes/router.php
测试
测试使用 PHPUnit。在命令行中运行:vendor/bin/phpunit --bootstrap tests\bootstrap.php --no-configuration tests
添加一个服务以进行测试
- 更新测试配置目录中的 services.json
- 更新测试配置目录中的 service-broker.yml
- 运行
vendor/bin/phpunit --bootstrap tests\bootstrap.php --no-configuration tests
另请参阅
Open Service Broker API
K8s 服务目录