Php project for creating Cloud Foundry service brokers.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.bp-config
app
bin
cache
config
sphring
src/Sphring/MicroWebFramework
tests
.cfignore
.gitattributes
.gitignore
.scrutinizer.yml
.travis.yml
README.md
cli-config.php
composer.json
index.php
manifest.yml
phpunit.xml.dist

README.md

php-cf-service-broker

Software License Stories in Ready Build Status Scrutinizer Code Quality Code Coverage

Php project for creating Cloud Foundry service brokers.

Overview

The goal is to provide a php project to quickly implement new service brokers in Cloud Foundry.

Compatibility

Getting start rapidly

  1. Clone this repo or use composer create-project cloudfoundry-community/php-cf-service-broker
  2. Add your service inside /config/services.json (remove example first)
  3. Create a user by doing this in command line: php bin/addUser.php [user_name] [password]
  4. (optional) Change configuration inside /config/config.yml
  5. Create the logic inside /src/Sphring/MicroWebFramework/ServiceBroker/DefaultServiceBroker.php (I suggest to see the doc, no need to follow rest url project handle it)
  6. Register your new service broker by following http://docs.cloudfoundry.org/services/managing-service-brokers.html#register-broker
  7. Service broker is ready and follow rest url given by the doc

Configure database

By default this project use an sqlite database, change to another database by modifying this file: /config/doctrine-driver.yml

Add more service broker

You can add an infinity of service broker to do this follow these steps:

service.broker.[your broker name]:
     class: Sphring\MicroWebFramework\ServiceBroker\[your broker class name]
     extend: service.broker.abstract
  • Add in this same file a new entry in service.broker.list, example:
service.broker.list:
  class: \ArrayObject
  constructor:
      1:
        ref:
          default: service.broker.default
          [service name from services.json]: service.broker.[your broker name]
  • Unvalidate cache by doing in command line touch sphring/main.yml or set cache to false inside /config/config.yml
  • Your new service broker is available

Run as a Cloud Foundry app

  1. Create a database service which his name follow this regex: /.*(postgres|pgsql|db|database|my|maria|oracle|oci).*/i (note: add in composer.json other pdo driver than pdo_mysql)
  2. Push the app (run cf push)
  3. Bind your database service on your app
  4. Restage your app
  5. Service broker app is ready try go to http://your_url/v2/catalog you should see your catalog

Run the tests

Tests use PHPUnit. Run with your command line: vendor/bin/phpunit --bootstrap tests\bootstrap.php --no-configuration tests

Add a service to test

  1. Update services.json inside tests configuration directory.
  2. Update service-broker.yml inside tests configuration directory.
  3. Run vendor/bin/phpunit --bootstrap tests\bootstrap.php --no-configuration tests