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.
curl -sS https://getcomposer.org/installer | php
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
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
.
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.
Please see the CloudFilesHelper wiki for more information about how you can streamline the process of accessing CDN resources in your HTML views.