You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

82 lines
3.1 KiB

# php-giantbomb
[![Packagist](https://img.shields.io/packagist/v/dborsatto/php-giantbomb.svg)](https://packagist.org/packages/dborsatto/php-giantbomb)
[![Packagist](https://img.shields.io/packagist/dt/dborsatto/php-giantbomb.svg)](https://packagist.org/packages/dborsatto/php-giantbomb)
[![Travis](https://img.shields.io/travis/dborsatto/php-giantbomb.svg)](https://travis-ci.org/dborsatto/php-giantbomb)
[![Packagist](https://img.shields.io/packagist/l/dborsatto/php-giantbomb.svg)](https://packagist.org/packages/dborsatto/php-giantbomb)
[![SensioLabsInsight](https://insight.sensiolabs.com/projects/e630e521-fd39-4ac2-b994-5149d6ffaca4/mini.png)](https://insight.sensiolabs.com/projects/e630e521-fd39-4ac2-b994-5149d6ffaca4)
[![Code Climate](https://codeclimate.com/github/dborsatto/php-giantbomb/badges/gpa.svg)](https://codeclimate.com/github/dborsatto/php-giantbomb)
[![Test Coverage](https://codeclimate.com/github/dborsatto/php-giantbomb/badges/coverage.svg)](https://codeclimate.com/github/dborsatto/php-giantbomb/coverage)
This is a library that acts as a wrapper for GiantBomb's API.
## Install
Via Composer
``` bash
$ composer require dborsatto/php-giantbomb
```
## Usage
``` php
$apiKey = 'YouApiKey';
// Create a Config object and pass it to the Client
$config = new DBorsatto\GiantBomb\Config($apiKey);
$client = new DBorsatto\GiantBomb\Client($config);
// OPTIONAL: use a cache driver
// Anything that extends Doctrine\Common\Cache\CacheProvider will work
$memcached = new Memcached();
$memcached->addServer('127.0.0.1', 11211);
$cache = new Doctrine\Common\Cache\MemcachedCache();
$cache->setMemcached($memcached);
$client->setCacheProvider($cache);
// Alternatively you can pass a CacheProvider instance as the second parameter of the Client's constructor
// $client = new DBorsatto\GiantBomb\Client($config, $cache);
// If no CacheProvider is configured, Doctrine\Common\Cache\VoidCache will be used
// You can still flush the current cache by invoking
// $client->getCacheProvider()->flush();
// Standard query creation process
$games = $client->getRepository('Game')->query()
->addFilterBy('name', 'Uncharted')
->sortBy('original_release_date', 'asc')
->setFieldList(array('id', 'name', 'deck'))
->setParameter('limit', 100)
->setParameter('offset', 0)
->find();
echo count($games)." Game objects loaded\n";
// These options are all equivalent
$game = $client->getRepository('Game')
->query()
->setResourceId('3030-22420')
->findOne();
$game = $client->query('Game')
->setResourceId('3030-22420')
->findOne();
$game = $client->findOne('Game', '3030-22420');
echo $game->get('name')." object loaded\n";
// These options are equivalent
$results = $client->getRepository('Search')
->query()
->setParameter('query', 'Uncharted')
->setParameter('resources', 'game,franchise')
->find();
$results = $client->search('Uncharted', 'game,franchise');
echo count($results)." Search objects loaded\n";
```
For the full option list visit [GiantBomb's API doc](http://www.giantbomb.com/api/documentation).
## License
The MIT License (MIT). Please see [License File](LICENSE.md) for more information.