cloudobjects / sdk
CloudObjects SDK for PHP for working with COIDs and object descriptions from CloudObjects.
Requires
- doctrine/cache: 1.*
- doctrine/common: >=2.6.1
- guzzlehttp/guzzle: >=6.0
- kevinrob/guzzle-cache-middleware: ^3.2
- ml/json-ld: >=1.0.7
- psr/log: >=1.1
- webmozart/assert: ^1.6
Requires (Dev)
- defuse/php-encryption: ^2.2
- nyholm/psr7: ~1.5.1
- phpunit/phpunit: >=4.8.0,<5.0
- symfony/http-foundation: >=4.0
- symfony/psr-http-message-bridge: >=1.1.0
Suggests
- defuse/php-encryption: Required to use CryptoHelper
- nyholm/psr7: Required to use parseSymfonyRequest() in AccountContext.
- symfony/http-foundation: Required to use parseSymfonyRequest() in AccountContext.
- symfony/psr-http-message-bridge: Required to use parseSymfonyRequest() in AccountContext.
README
The CloudObjects PHP SDK provides simple access to CloudObjects from PHP-based applications. It wraps the Object API to fetch objects from the CloudObjects Core database and provides object-based access to their RDF description. A two-tiered caching mechanism (in-memory and Doctrine cache drivers) is included. The SDK also contains a helper class to validate COIDs.
Installation
The SDK is distributed through packagist. Add cloudobjects/sdk
to the require
section of your composer.json
, like this:
{
"require": {
"cloudobjects/sdk" : ">=0.7"
}
}
Retrieving Objects
In order to retrieve objects from the CloudObjects Core database you need to create an instance of CloudObjects\SDK\ObjectRetriever
. Then you can call getObject()
. This method returns an ML\JsonLD\Node
instance or null
if the object is not found. You can use the object interface of the JsonLD library to read the information from the object.
Here's a simple example:
use ML\IRI\IRI;
use CloudObjects\SDK\ObjectRetriever;
/* ... */
$retriever = new ObjectRetriever();
$object = $this->retriever->getObject(new IRI('coid://cloudobjects.io'));
if (isset($object))
echo $object->getProperty('http://www.w3.org/2000/01/rdf-schema#label')->getValue();
else
echo "Object not found.";
Configuration
You can pass an array of configuration options to the ObjectRetriever's constructor:
Option | Description | Default |
---|---|---|
cache_provider | The type of cache used. Currently supports redis , file and none . | none |
cache_prefix | A prefix used for cache IDs. Normally this should not be set but might be necessary on shared caches. | clobj: |
cache_ttl | Determines how long objects can remain cached. | 60 |
auth_ns | The namespace of the service that this retriever acts for. If not set the API is accessed anonymously. | null |
auth_secret | The shared secret between the namespace in auth_ns and cloudobjects.io for authenticated. If not set the API is accessed anonymously. | null |
For redis
cache:
Option | Description | Default |
---|---|---|
cache_provider.redis.host | The hostname or IP of the Redis instance. | 127.0.0.1 |
cache_provider.redis.port | The port number of the Redis instance. | 6379 |
For file
cache:
Option | Description | Default |
---|---|---|
cache_provider.file.directory | The directory to store cache data in. | The system's temporary directory. |
License
The PHP SDK is licensed under Mozilla Public License (see LICENSE file).