jamiehannaford/php-opencloud-zf2

ZF2 module that allows easy interaction with Rackspace/OpenStack APIs

1.0.0 2014-01-17 10:02 UTC

This package is not auto-updated.

Last update: 2024-04-27 13:36:00 UTC


README

A simple but powerful ZF2 module that allows your web app to communicate easily with Rackspace/OpenStack APIs. You can manage your cloud account configurations, use Swift helper functions in your view files, monitor your cloud servers, sync directories with a CDN, update DNS records... In short, you get the full benefit of an SDK without all the overhead.

Installation

Step 1: Install Composer (if you haven't already)

curl -sS https://getcomposer.org/installer | php

Step 2: Install the module

php composer.phar require jamiehannaford/php-opencloud-zf2:dev-master

This will automatically update your composer.json configuration file and force Composer to install the module. Alternatively, you can manually insert the requirement like so:

{
    "require": {
        "jamiehannaford/php-opencloud-zf2": "~1.0"
    }
}

And then run:

php composer.phar install

Step 3: ZF2 Configuration

You need to update your application.config.php file, and add in the module:

return array(
    'modules' => array(
        // other modules...
        'OpenCloud'
    )
);

You then need to make sure you have an opencloud.local.php configuration file in your config/autoload directory - since this is what holds all your API configuration values. To make life easier, you can copy the dist version shipped with this project:

cp ./vendor/jamiehannaford/php-opencloud-zf2/config/opencloud.local.php.dist ./config/autoload/opencloud.local.php

If using Rackspace, you must fill in the username and apiKey config options.

If using OpenStack, you must fill in the username, password config options, along with either tenantId or tenantName.

Usage

You can retrieve a Rackspace client object using the Service Manager:

public function indexAction()
{
    // get Rackspace client
    $rackspace = $this->getServiceLocator()->get('OpenCloud');

    // this also works
    $rackspace = $this->getServiceLocator()->get('OpenCloud\Rackspace');

    // get OpenStack client
    $openstack = $this->getServiceLocator()->get('OpenCloud\OpenStack');
}

Once this client object is available, you have full access to the php-opencloud SDK.

View helpers

Please see the CloudFilesHelper wiki for more information about how you can streamline the process of accessing CDN resources in your HTML views.